Я пытаюсь настроить макет, когда появляется мягкая клавиатура после того, как текст редактирования получает фокус. Прямо сейчас, если у меня есть много текста редактирования и появляется клавиатура, последний текст редактирования скрыт, и я не могу прокручивать вверх.Переместить макет, когда отображается мягкая клавиатура
Это как мой макет обстроило:
Шаблон:
<LinearLayout>
<LinearLayout>
// header 1
</LinearLayout>
<LinearLayout>
// header 1
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:orientation="vertical">
// where I inflate view_1
</LinearLayout>
<LinearLayout>
// footer
</LinearLayout>
</LinearLayout>
View (view_1):
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true">
<LinearLayout>
// ...
</LinearLayout>
<LinearLayout>
// ...
</LinearLayout>
<LinearLayout>
<TextView/>
<EditText/>
<TextView/>
<EditText/>
<TextView/>
<EditText/>
<TextView/>
<EditText/>
</LinearLayout>
</LinearLayout>
</ScrollView>
Я уже попробовать все виды комбинаций android:windowSoftInputMode
(на манифесте .xml и программно). Я попытался установить android:isScrollContainer="false"
на прокрутку, но ничего.
Я также пробовал это answer, поместив GlobalLayoutListener в свой вид прокрутки, но onGlobalLayout не вызывается, когда появляется клавиатура. И значение isKeyboardShown
всегда неверно.
Привет @lpfx, могу я знать, почему/3 для вычисления высота клавиатуры? – cgr
Я предположил, что высота клавиатуры занимает 1/3 экрана. Это не отличное решение, но оно работало на устройствах, которые мне приходилось поддерживать. Это может сломаться для небольших экранов. Вы можете установить другое значение для PS: мое приложение было только в портретном режиме. – lpfx