ScrollView с кнопкой ниже прокрутки другой внутри TabHost - PullRequest
0 голосов
/ 26 апреля 2011

У меня есть Activity, которая состоит из большого scrollview (который содержит поля EditText) вместе с кнопкой, прикрепленной к нижней части экрана (не является частью scrollView). Это простой пример для отображения проблемы, которую я вижу. В манифесте для моего приложения указывается android: windowSoftInputMode = AdjustPan для всех операций.

Если я запускаю это задание напрямую, все отображается правильно, и просмотр прокрутки прокручивается между полями редактирования, как и должно.

У меня недостаточно очков для публикации изображений или> 2 гиперссылок .....

Нет TabHost - редактировать первое поле

Если я запускаю это действие в качестве содержимого TabHost, прокрутка кажется неэффективной. Всякий раз, когда EditText получает фокус, действие правильно перемещается в поле Edit. Тем не менее, он также заставляет кнопку на экране.

Внутри TabHost - редактировать первое поле - Откуда появилась эта кнопка

Я попытался создать макет для этого действия с использованием LinearLayout (с отрицательным полем для кнопки), а также RelativeLayout, и оба они демонстрируют одинаковую проблему с кнопкой, которая всегда видна при прокрутке 3 полей EditText.

Кто-нибудь видел что-то подобное раньше или есть идеи, как заставить прокрутку работать должным образом внутри TabHost ?????

Версия LinearLayout

<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 Ответ

0 голосов
/ 11 мая 2011

В случае, если это поможет кому-то еще .....

Все действия, которые были размещены внутри TabHost, имели android: windowSoftInputMode = AdjustPan.

Однако, действие, которое размещало TabHostОтсутствовал Android: WindowSoftInputMode = AdjustPan.После того, как я добавил это, панорамирование сработало как внутри TabHost, так и вне TabHost.

...