我在 HorizontalScrollView 中有一个 TabHost,有时可以有超过 20 个选项卡。在每个选项卡 Activity 中,我可以按“下一步”按钮,指示 TabHost 移至下一个选项卡。问题是,如果 ScrollView 不在屏幕上,我无法让 ScrollView 滚动到选定的选项卡。
有人可以告诉我如何做到这一点吗?
最佳答案
您必须将 xml 中的 TabWidget“包装”到 HorizontalScrollView 中:
...
<HorizontalScrollView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:scrollbars="none"
android:id="@+id/tabsHorizontalScrollView">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0"/>
</HorizontalScrollView>
...
并设置为TabHost TabHost.OnTabChangeListener
@Override
public void onTabChanged(final String tag) {
View tabView = tabHost.getCurrentTabView();
int scrollPos = tabView.getLeft() - (tabsHorizontalScrollView.getWidth() - tabView.getWidth()) / 2;
tabsHorizontalScrollView.smoothScrollTo(scrollPos, 0);
}
关于android - ScrollView中的TabHost,选中时滚动到选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7875939/