如何设置android Horizo​​ntalScrollView从右到左的行为(默认选中的选项卡从右侧,而不是左侧)

时间:2012-11-14 17:37:03

标签: android android-ui android-tabs

如何设置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>

2 个答案:

答案 0 :(得分:2)

一种有效的解决方法:

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

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

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

答案 1 :(得分:0)

我确定这为时已晚,但对于其他存在类似问题的人

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

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