4

如何设置 Horizo​​ntalScrollView 以从右到左的方式运行?默认行为是显示的第一个选项卡(默认选项卡)从左侧开始。我希望选项卡反向排序,以便第一个“默认”选项卡位于屏幕右侧。

我怎么做?我使用了 layout_gravity 但它没有用..

这是我的布局代码,包含 tabhost 和 Horizo​​ntalScrollView :

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <HorizontalScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:scrollbars="none">

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
    </HorizontalScrollView>

    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
</LinearLayout>

</TabHost>
4

2 回答 2

3

一种有效的解决方法:

final HorizontalScrollView view = (HorizontalScrollView) findViewById(R.id.scroller);
        view.postDelayed(new Runnable() {

            @Override
            public void run() {
                view.fullScroll(HorizontalScrollView.FOCUS_RIGHT);
            }
        }, 10);

这个想法是程序化滚动需要延迟才能工作。

于 2014-08-18T13:38:50.450 回答
2

我敢肯定这为时已晚,但对于其他有类似问题的人来说:

horizontalScrollView.post {
        horizontalScrollView.fullScroll(View.FOCUS_RIGHT)
    }

你不应该使用延迟版本的帖子。因为 post 将被添加到消息队列的末尾。

于 2019-07-13T05:44:15.080 回答