2013-09-05 3 views
-1

Я пытаюсь сменить макет, когда откроется мягкая клавиатура.По-прежнему мой макет не смещается.

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

Так что я пытаюсь переместить весь экран вверх (только 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" /> 

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

ответ

0

UPDATE:

Я просто перечитайте свой вопрос и нашел ошибку вы делаете. Вы добавляете 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> 
+0

Я уже попробовать это ... не полезно .... Мой макет не сдвигая вверх .... это не движется вверх, когда клавиатура открывается .. .. –

+0

См. Мой обновленный ответ. –

+0

@SandipArmalPatil Если ваша проблема решена, примите ответ или обновите свой вопрос. –

0

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