ScrollView с кнопкой ниже прокручивает другой внутри TabHost

#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.