2012-01-25 2 views
14

У меня есть активность с кучей полей EditText на нем, а windowSoftInputMode настроен на adjustPan, это в основном делает то, что я хочу, однако для editText в нижней части макет, он недостаточно кастрюли. Он будет панорамироваться, чтобы показать верхнюю строку многострочного текста редактирования, но как только вы нажмете enter, курсор перемещается вниз по строке и теперь скрывается под клавиатурой.Как сделать windowSoftInputMode = "adjustPan" pan more

В любом случае, я могу сделать это еще дальше, чтобы верхняя часть editText находилась в верхней части окна.

Использование adjustResize определенно не будет делать то, что я хочу, панорамирование - это правильная вещь, просто нужно, чтобы она кастралась дальше.

+0

опубликуйте свой снимок экрана, поэтому легко занизить проблему – Lokesh

ответ

6

То же самое произошло со мной.

Что я сделал для решения, я просто поместил все элементы управления в ScrolllView.

И установить андроид: windowSoftInputMode adjustResize. Поэтому всякий раз, когда клавиатура открыта, она будет прокручивать экран, чтобы настроить вид, и Edittext всегда показывают на экране.

Надеюсь, эта идея будет работать для вас.

Благодаря

+0

+1, вы правы, я делал то же самое. –

+0

Что вы подразумеваете под словом «положить все элементы управления в ScrollView»? –

0

У меня есть edittext внизу экрана, когда я коснулся его открытой softkeyboard, но он скрывает edittext, поэтому внесите изменения в макет (используйте относительный макет), и он работает для меня без использования adjustPan. Вот мой XML.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gen_mainlayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/bg" 
    android:orientation="vertical" > 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" > 

     <RelativeLayout 
      android:id="@+id/headerlinearLayout" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/navigation_bar" > 

      <Button 
       android:id="@+id/chatterBack" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_centerVertical="true" 
       android:layout_marginLeft="20dp" 
       android:background="@drawable/navigation_cancel_button" 
       android:textColor="#FFFFFF" > 
      </Button> 

      <TextView 
       android:id="@+id/ittletextView" 
       style="@style/titleText" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerInParent="true" 
       android:text="Title" > 
      </TextView> 

      <Button 
       android:id="@+id/blockhide" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:layout_centerVertical="true" 
       android:layout_marginRight="20dp" 
       android:background="@drawable/navigation_cancel_button" 
       android:padding="5dp" 
       android:text="Block/Hide" 
       android:textColor="#FFFFFF" > 
      </Button> 
     </RelativeLayout> 

     <LinearLayout 
      android:id="@+id/middlelinearLayout" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/headerlinearLayout" 
      android:orientation="vertical" > 

     </LinearLayout> 


     <LinearLayout 
      android:id="@+id/footerlinearLayout" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:background="@drawable/commnet_post_bg" 
      android:gravity="center" 
      android:paddingLeft="5dp" 
      android:paddingRight="5dp" > 


      <EditText 
       android:id="@+id/sendeditText" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginRight="5dp" 
       android:layout_weight="1" 
       android:background="@drawable/comment_post_text_box" 
       android:imeOptions="actionSend|flagNoEnterAction" 
       android:inputType="text" 
       android:paddingLeft="10dp" 
       android:paddingRight="5dp" 
       android:singleLine="true" > 
      </EditText> 

      <Button 
       android:id="@+id/sendButton" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="@drawable/send_button" 
       android:text="Send" 
       android:textColor="#FFFFFF" > 
      </Button> 
     </LinearLayout> 
    </RelativeLayout> 

</LinearLayout> 
-1

Вам необходимо добавить эту строку в свою деятельность для настройки экрана.

 <activity android:name=".TodoEdit" 
     android:windowSoftInputMode="adjustResize"> 
+0

как я сказал в вопросе adjustResize не делает этого. – superfell

1

Поместите свой EditText внутри ScrollView, а затем дать свойство adjustResize, вместо adjustPan, он будет автоматически регулировать экран и его компонентов.

Смежные вопросы