#android #scroll #scrollview #android-tabhost
#Android #прокрутка #scrollview #android-tabhost
Вопрос:
У меня есть действие, которое состоит из большого scrollview (который содержит поля EditText) вместе с кнопкой, которая привязана к нижней части экрана (не является частью ScrollView). Это простой пример для отображения проблемы, которую я вижу. В манифесте для моего приложения указан android:windowSoftInputMode = adjustPan для всех действий.
Если я запускаю это действие напрямую, все отображается правильно, и scrollview прокручивается между полями редактирования, как и должно быть.
У меня недостаточно баллов для публикации изображений или> 2 гиперссылок…..
Нет TabHost — отредактируйте первое поле
Если я запускаю это действие как содержимое TabHost, прокрутка, похоже, прерывается. Всякий раз, когда редактируемый текст получает фокус, действие должным образом перемещается в поле редактирования. Однако это также выводит кнопку на экран.
Внутри TabHost — редактировать первое поле — Откуда взялась эта кнопка
Я попытался создать макет для этого действия, используя LinearLayout (с отрицательным полем для кнопки), а также RelativeLayout, и в обоих случаях возникает одна и та же проблема с кнопкой, которая всегда видна при прокрутке через 3 поля EditText.
Кто-нибудь видел что-нибудь подобное раньше или имеет какие-либо идеи, как заставить прокрутку работать должным образом внутри TabHost?????
версия линейного описания
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="60dip"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<EditText android:id="@ id/e1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dip"
android:layout_marginBottom="30dip"
android:hint="edit text 1"
/>
<EditText android:id="@ id/e2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dip"
android:layout_marginBottom="30dip"
android:hint="edit text 2"
/>
<EditText android:id="@ id/e3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dip"
android:layout_marginBottom="30dip"
android:hint="edit text 3"
/>
</LinearLayout>
</ScrollView>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:layout_marginTop="-60dip"
android:layout_gravity="center"
/>
RelativeLayout Version
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button android:id="@ id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
/>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_above="@ id/button1"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<EditText android:id="@ id/e1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dip"
android:layout_marginBottom="30dip"
android:hint="edit text 1"
/>
<EditText android:id="@ id/e2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dip"
android:layout_marginBottom="30dip"
android:hint="edit text 2"
/>
<EditText android:id="@ id/e3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dip"
android:layout_marginBottom="30dip"
android:hint="edit text 3"
/>
</LinearLayout>
</ScrollView>
Заранее спасибо.
Ответ №1:
На случай, если это поможет кому-то другому…..
Все действия, которые были размещены внутри TabHost, имели Android:windowSoftInputMode = adjustPan.
Однако в Activity, на котором размещался TabHost, отсутствовал android:windowSoftInputMode = adjustPan. Как только я добавил это, панорамирование сработало с smae внутри TabHost или за его пределами TabHost.