android:windowSoftInputMode="adjustResize" is not working as it should be

18,259

Solution 1

Remove your outer Linear Layout and place everything inside a Relative Layout. And align your bottom edit text to bottom of the layout by making alignParentBottom true. And main thing "Dont do anything to the android:windowSoftInputMode." Delete that line from manifest file. Let android take default.

Solution 2

You did not say which version of android are you compiling for and which version are you running on. But check if you perhaps use fullscreen option set by about android:windowFullscreen attribute or by setting FLAG_FULSCREEN. This prevents adjusrResize option to wrok properly on newer APIs. It works for API 10 (2.3.5).

Share:
18,259
Admin
Author by

Admin

Updated on June 04, 2022

Comments

  • Admin
    Admin almost 2 years

    Even though this problem has many solutions in stackoverflow, I could not solve my problem. I have two edit texts in the screen, one on top, another is attached to bottom of the screen. Whenever I click on bottom edit text, softkey board comes over it. I already played with windowSoftInputMode.

    I dont want other content of the screen to scroll up when I click on my bottom edittext.

    This is my xml layout.

     <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:background="@color/background"
    android:orientation="vertical"
    >
    <RelativeLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content" >
    <EditText
       android:id="@+id/phone_number_edit_text_compose"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_alignParentTop="true"
       android:layout_marginLeft="@dimen/activity_horizontal_margin"
       android:layout_marginTop="@dimen/activity_horizontal_margin"
       android:layout_toLeftOf="@id/select_contact"
       android:background="@drawable/phone_edittext_background_selector"
       android:ems="10"
       android:hint="@string/phone_edittext_hint"
       android:inputType="phone"
       android:paddingBottom="12dp"
       android:paddingLeft="8dp"
       android:paddingTop="12dp"
       android:textAppearance="?android:attr/textAppearanceMedium"
       android:textColor="@color/white" />
    
    <ImageButton
     android:id="@+id/selectcontact_compose"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentTop="true"
     android:layout_alignBottom="@+id/phone_number_edit_text_compose"
     android:layout_marginTop="@dimen/activity_horizontal_margin"
     android:layout_toRightOf="@id/phone_number_edit_text_compose"
     android:background="@drawable/select_contact_background_selector"
     android:contentDescription="@string/select_contact_content_description"
     android:src="@drawable/select_contact_selector"
     android:layout_marginLeft="2dp" 
     android:paddingLeft="8dp"
     android:paddingRight="8dp"/>
    
    <View
         android:id="@+id/view1"
         android:layout_width="wrap_content"
         android:layout_height="2px"
         android:layout_below="@id/phone_number_edit_text_compose"
         android:layout_marginTop="@dimen/redial_screen_distance_between_views"
         android:background="@drawable/separator" />
    
    <LinearLayout
       android:id="@+id/repetition_layout"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_below="@+id/view1"
       android:clickable="true"
       android:onClick="RepetitionLayoutClickListener"
       android:orientation="horizontal"
       android:paddingBottom="@dimen/redial_screen_distance_between_views"
       android:paddingTop="@dimen/redial_screen_distance_between_views" 
       android:background="@drawable/repetition_layout_background_selector"
       android:paddingLeft="@dimen/activity_horizontal_margin"
       android:paddingRight="@dimen/activity_horizontal_margin">
    
    <TextView
      android:id="@+id/repetition_textview"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/repetition"
      android:textColor="@color/green"
      android:textAppearance="?android:attr/textAppearanceLarge" />
    
    <Spinner
      android:id="@+id/repetition_spinner"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:background="@null"
      android:clickable="false"
      android:popupBackground="@color/dark_background" />
    
    </LinearLayout>
    
    <View
         android:id="@+id/view2"
         android:layout_width="wrap_content"
         android:layout_height="2px"
         android:layout_below="@id/repetition_layout"
         android:background="@drawable/separator" />
    
    <LinearLayout
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_below="@+id/view2"
       android:orientation="horizontal"
       android:paddingBottom="@dimen/redial_screen_distance_between_views"
       android:paddingTop="@dimen/redial_screen_distance_between_views" 
       android:paddingLeft="@dimen/activity_horizontal_margin"
       android:paddingRight="@dimen/activity_horizontal_margin"
       android:id="@+id/date_layout">
    
    <TextView
       android:id="@+id/textView1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/d"
       android:textColor="@color/green"
       android:textAppearance="?android:attr/textAppearanceLarge" />
    <TextView
       android:id="@+id/date_textview"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/a"
       android:paddingLeft="5dp"
       android:textColor="@color/white"
       android:textAppearance="?android:attr/textAppearanceLarge" />
    </LinearLayout>
    <View
         android:id="@+id/view3"
         android:layout_width="wrap_content"
         android:layout_height="2px"
         android:layout_below="@id/date_layout"
         android:background="@drawable/separator" />
    
    <LinearLayout
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_below="@+id/view3"
       android:orientation="horizontal"
       android:paddingBottom="@dimen/redial_screen_distance_between_views"
       android:paddingTop="@dimen/redial_screen_distance_between_views" 
       android:paddingLeft="@dimen/activity_horizontal_margin"
       android:paddingRight="@dimen/activity_horizontal_margin"
       android:id="@+id/time_layout">
    
    <TextView
       android:id="@+id/textView2"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/t"
       android:textColor="@color/green"
       android:textAppearance="?android:attr/textAppearanceLarge" />
    <TextView
       android:id="@+id/time_textview"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/b"
       android:paddingLeft="5dp"
       android:textColor="@color/white"
       android:textAppearance="?android:attr/textAppearanceLarge" />
    </LinearLayout>
    </RelativeLayout>
    
    <RelativeLayout
       android:id="@+id/compose_layout"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_weight="1">
    
    <EditText
       android:id="@+id/editText1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:background="@drawable/compose_message_background"
       android:hint="@string/compose_message_hint"
       android:paddingLeft="5dp"
       android:paddingRight="5dp"
       android:paddingTop="12dp"
       android:paddingBottom="12dp"
       android:layout_alignParentLeft="true"
       android:layout_alignParentBottom="true"
       android:textAppearance="?android:attr/textAppearanceMedium"
       android:layout_toLeftOf="@+id/imageButton1" >
    
    </EditText>
    
    <ImageButton
       android:id="@+id/imageButton1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:background="@drawable/send_button_background"
       android:src="@drawable/ic_action_send_now" 
       android:paddingRight="8dp"
       android:paddingLeft="8dp"
       android:layout_alignBottom="@+id/editText1"
       android:layout_alignTop="@+id/editText1"
       android:layout_alignParentRight="true"/>
    </RelativeLayout>
    
    </LinearLayout>
    

    And this my manifest xml.

        <activity
            android:name="com.task.SmsScreen"
            android:label="@string/app_name" 
            android:windowSoftInputMode="adjustResize"
          >        
        </activity>
    
  • Admin
    Admin about 10 years
    Thank you but I dont want other content of the screen to scroll up when I click on my bottom edittext.
  • FabioR
    FabioR over 3 years
    This worked for me, although I really don't know why it would work with a Relative but not with a Linear
  • Alin
    Alin almost 3 years
    Thanks. I was using SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN for SystemUiVisibility which was causing adjustResize to not work correctly
  • zihadrizkyef
    zihadrizkyef over 2 years
    why should place it inside relative layout?
  • Praveena
    Praveena over 2 years
    @zihadrizkyef When the keyboard opens your root container becomes small but edit text is aligned to the bottom it will also move up with the parent
  • zihadrizkyef
    zihadrizkyef over 2 years
    @Praveena why I can't use LinearLayout? why should RelativeLayout?