Android: автопрокрутка HorizontalScrollView - PullRequest
5 голосов
/ 19 мая 2010

Я использую следующий код для имитации вкладок, и, поскольку имеется больше вкладок, ширина которых может соответствовать, пользователь может прокручивать влево или вправо, чтобы сделать кнопку вкладки видимой. Все это работает, однако я также предоставляю пользователю возможность переключаться между вкладками, проводя пальцем влево или вправо по содержимому вкладки. Опять же - это работает. Но когда я перехожу к самой правой вкладке, соответствующая кнопка едва видна. Я хочу автоматически прокрутить таблицу внутри HorizontalScrollView, чтобы выбранная кнопка вкладки была видна, но при выполнении HorizontalScrollView.smoothScrollTo(300, 0) ничего не происходит. Неважно, насколько высоко я установил первый x параметр, ничего не будет двигаться (да, у меня есть алгоритм для вычисления точного положения).

Вот код XML для прокрутки кнопок вкладок

<HorizontalScrollView android:layout_width="fill_parent"
    android:background="@color/tabs_header" android:layout_height="55dip"
    android:scrollbars="none" android:id="@+id/tabsButtonView">
    <TableLayout android:id="@+id/TableLayout01" android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TableRow android:id="@+id/TableRow01" android:layout_width="fill_parent" android:layout_weight="1"
            android:layout_height="0dip" android:paddingTop="5dip" android:paddingLeft="3dip">
            <ImageButton android:src="@drawable/linkup_logo_small" android:id="@+id/tabBtt0"
                android:layout_width="wrap_content" android:layout_marginLeft="2dip" android:layout_marginRight="2dip"
                android:layout_height="fill_parent" android:padding="5dip" android:background="@drawable/tab_selected"></ImageButton>
            <ImageButton android:src="@drawable/simplyhired_small" android:id="@+id/tabBtt1"
                android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_marginLeft="2dip"
                android:layout_marginRight="2dip" android:padding="5dip" android:background="@drawable/tab_normal"></ImageButton>
            <ImageButton android:src="@drawable/indeedcom_small" android:id="@+id/tabBtt2"
                android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dip"
                android:layout_marginLeft="2dip" android:layout_marginRight="2dip" android:background="@drawable/tab_normal"></ImageButton>
            <ImageButton android:src="@drawable/careerbuilder_logo_small" android:id="@+id/tabBtt3"
                android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dip"
                android:layout_marginLeft="2dip" android:layout_marginRight="2dip" android:background="@drawable/tab_normal"></ImageButton>
        </TableRow>
    </TableLayout>
</HorizontalScrollView>

1 Ответ

2 голосов
/ 20 мая 2010

В HorizontalScrollView нет ничего плохого, и автоматическая прокрутка работает отлично. Это была просто последовательность инициализации, которая не выполнялась в моем коде. Дело закрыто.

...