HorizontalScrollView внутри RelativeLayout: отлично работает на 1.6+ API, но не на 1.5 API - PullRequest
3 голосов
/ 10 октября 2011

Я использую HorizontalScrollView внутри RelativeLayout. На 1.6 + API работает нормально, но на 1.5 API HorizontalScrollView не прокручивается, в чем проблема?

В 1.5 API (3) вы можете видеть только первую часть HorizontalScrollView, и прокрутки нет вообще, в то время как на API4 и выше она работает нормально.

Чтобы ответить на вопрос, используйте код:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout    xmlns:android="http://schemas.android.com/apk/res/android"    

xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="fill_parent"    
android:layout_height="fill_parent"
android:orientation="vertical"     >   

<HorizontalScrollView
 android:id="@+id/pscroll"
android:scrollbars="horizontal"
android:orientation="horizontal"
android:layout_width="fill_parent"    
android:layout_height="wrap_content"
android:layout_below="@id/ad"
android:fillViewport="true"
android:scrollbarAlwaysDrawHorizontalTrack="true">      

<LinearLayout android:orientation="horizontal" android:id="@+id/LinearLayout01"       android:scrollbars="horizontal" android:layout_width="fill_parent"    android:layout_height="wrap_content">
                  <ImageButton android:id="@+id/P1"  android:layout_width="wrap_content" android:layout_height="wrap_content" />
           <ImageButton android:id="@+id/P2"  android:layout_width="wrap_content" android:layout_height="wrap_content"/>

1 Ответ

1 голос
/ 10 октября 2011

Редактировать: уточнено, основано на отрицательной обратной связи (очевидно, люди ожидают, что их рука будет проходить через это)

Представление прокрутки должно содержать макет, а не его изменение. Поэтому ваш макет должен быть:

<HorizontalScrollView android:id="@+id/pscroll"
    android:scrollbars="horizontal" android:orientation="horizontal"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_below="@id/ad" android:fillViewport="true"
    android:scrollbarAlwaysDrawHorizontalTrack="true">
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

        xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:orientation="vertical">

        <LinearLayout android:orientation="horizontal"
            android:id="@+id/LinearLayout01" android:scrollbars="horizontal"
            android:layout_width="fill_parent" android:layout_height="wrap_content">
            <ImageButton android:id="@+id/P1" android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <ImageButton android:id="@+id/P2" android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>
    </RelativeLayout>
</HorizontalScrollView>
...