Как сделать windowSoftInputMode = "adjustPan" pan more
У меня есть активность с кучей полей EditText на нем, а windowSoftInputMode настроен на настройкуPan, это в основном делает то, что я хочу, однако для editText в нижней части макета он недостаточно кастрюли. Он будет панорамировать, чтобы показать верхнюю строку многострочного текста редактирования, но как только вы нажмете enter, курсор перемещается по строке и теперь скрывается под клавиатурой.
В любом случае, я могу сделать так, чтобы верхняя часть editText находилась в верхней части окна.
Использование adjustResize определенно не будет делать то, что я хочу, панорамирование - это правильная вещь, просто нужно, чтобы она кастралась дальше.
Ответы
Ответ 1
То же самое произошло со мной.
Что я сделал для решения, я просто поместил все элементы управления в ScrolllView.
И установите android: windowSoftInputMode adjustResize. Поэтому всякий раз, когда клавиатура открыта, она будет прокручивать экран для настройки вида, а Редактировать всегда отображается на экране.
Надеюсь, эта идея будет работать для вас.
Спасибо
Ответ 2
Поместите свой EditText внутри ScrollView, а затем укажите свойство adjustResize, вместо adjustPan, он автоматически отрегулируйте экран и его компоненты.
Ответ 3
У меня есть 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>
Ответ 4
Вам нужно добавить эту строку в свою активность для настройки экрана.
<activity android:name=".TodoEdit"
android:windowSoftInputMode="adjustResize">