Тем не менее мой макет не сдвигается вверх.

Я пытаюсь изменить раскладку, когда откроется программная клавиатура.

У меня есть edittext и кнопка. Я четко вижу текст редактирования, открыта ли клавиатура или нет, но проблема в том, что я показываю раскрывающийся список для текста редактирования. Когда раскрывающийся список открывается, он открывается поверх текста редактирования, потому что между клавиатурой и раскрывающимся списком недостаточно места.

Итак, я пытаюсь сдвинуть весь экран вверх (будет отображаться только текст редактирования). Так что можете показать раскрывающийся список ниже Edittext.

Я пробую следующие вещи...

  1. Я добавляю следующий атрибут в свою активность в AndroidManifest.xml

    android:windowSoftInputMode="adjustPan"

  2. Я добавляю следующий код в свой .java file

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)

Я где-то читал, что мне нужно использовать относительную компоновку. Я также пробую это, но ни один из них не помогает.

Вот мой XML-код для справки.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:background="#EFEFEF"
 >

<ViewStub
    android:id="@+id/vsHeader2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inflatedId="@+id/header"
    android:layout="@layout/copyofheader" />



        <TextView
            android:id="@+id/firstPara"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="56dip"
            android:paddingLeft="12dp"
            android:paddingRight="12dp"
            android:text=""
            android:textSize="16sp" />

        <TextView
            android:id="@+id/secondPara"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/firstPara"
            android:layout_marginTop="24dip"
            android:paddingLeft="12dp"
            android:paddingRight="12dp"
            android:text=""
            android:textColor="#666666"
            android:textSize="16sp" />

         <AutoCompleteTextView
            android:id="@+id/mysecondautocomplete"
            android:layout_width="fill_parent"
            android:layout_height="40dip"
            android:layout_below="@id/secondPara"
            android:layout_marginLeft="12dip"
            android:layout_marginRight="12dip"
            android:layout_marginTop="12dip"                
             android:ems="10"

             android:dropDownVerticalOffset="44dip"
             android:windowSoftInputMode="stateHidden"
             android:dropDownHeight="290dip"    
              android:imeOptions="actionSearch"
            android:drawableLeft="@drawable/search_grey"
            android:background="@drawable/borderforloginedittext"
            android:drawablePadding="6dip"
            android:hint="Enter Restaurant Name"
            android:inputType="textPersonName"
             android:dropDownWidth="match_parent"
            android:textColor="#cc3333"
            android:textColorHint="#999999"
            android:textSize="16sp" />

Я не понимаю, почему мой макет не смещается вверх. Пожалуйста, дайте мне любую подсказку или ссылку.


person Sandip Armal Patil    schedule 05.09.2013    source источник


Ответы (2)


ОБНОВЛЕНИЕ:

Я только что перечитал ваш вопрос и нашел ошибку, которую вы делаете. Вы добавляете android:windowSoftInputMode="adjustPan" в AndroidManifestдля изменения размера или масштабирования окна клавиатуры.

Вы должны использовать android:windowSoftInputMode="adjustResize", который изменит размер окна или соответствующим образом отрегулирует окно.


Попробуйте это:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
>

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

<RelativeLayout
  android:layout_width="match_parent"
  android:layout_height="fill_parent"
  android:background="#EFEFEF"
 >

<ViewStub
android:id="@+id/vsHeader2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inflatedId="@+id/header"
android:layout="@layout/copyofheader" />



    <TextView
        android:id="@+id/firstPara"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="56dip"
        android:paddingLeft="12dp"
        android:paddingRight="12dp"
        android:text=""
        android:textSize="16sp" />

    <TextView
        android:id="@+id/secondPara"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/firstPara"
        android:layout_marginTop="24dip"
        android:paddingLeft="12dp"
        android:paddingRight="12dp"
        android:text=""
        android:textColor="#666666"
        android:textSize="16sp" />

     <AutoCompleteTextView
        android:id="@+id/mysecondautocomplete"
        android:layout_width="fill_parent"
        android:layout_height="40dip"
        android:layout_below="@id/secondPara"
        android:layout_marginLeft="12dip"
        android:layout_marginRight="12dip"
        android:layout_marginTop="12dip"                
         android:ems="10"

         android:dropDownVerticalOffset="44dip"
         android:windowSoftInputMode="stateHidden"
         android:dropDownHeight="290dip"    
          android:imeOptions="actionSearch"
        android:drawableLeft="@drawable/search_grey"
        android:background="@drawable/borderforloginedittext"
        android:drawablePadding="6dip"
        android:hint="Enter Restaurant Name"
        android:inputType="textPersonName"
         android:dropDownWidth="match_parent"
        android:textColor="#cc3333"
        android:textColorHint="#999999"
        android:textSize="16sp" />
    </RelativeLayout>
  </ScrollView>
</RelativeLayout>
person Umer Farooq    schedule 05.09.2013
comment
Я уже пробовал это... бесполезно... Мой макет не смещается вверх... он не смещается, когда открывается клавиатура.... - person Sandip Armal Patil; 05.09.2013
comment
@SandipArmalPatil Если ваша проблема решена, примите ответ или обновите свой вопрос. - person Umer Farooq; 05.09.2013

Поместите весь макет в Scrollview. Поэтому, когда программная клавиатура откроется, ваш вид изменится соответствующим образом.

person kapil thadani    schedule 05.09.2013