如何设置所选选项卡必须位于中间

时间:2011-12-15 06:51:21

标签: android scrollview android-tabhost tabwidget horizontalscrollview

我是Android新手,在我的项目中我有要求

即我有六个标签,但我只在屏幕上显示三个标签,其余标签我使用ScrollView.Here selected标签项必须在中间,首先当我进入屏幕时我显示中间项目是活动的(即选中) )。

那很好但是当我滚动剩下的标签时,如何将这个中间项设置为中间?

任何人都可以提出解决方案的建议。

2 个答案:

答案 0 :(得分:7)

检查this:)

public void centerTabItem(int position) {
    tabHost.setCurrentTab(position);
    final TabWidget tabWidget = tabHost.getTabWidget();
    final int screenWidth = getWindowManager().getDefaultDisplay().getWidth();
    final int leftX = tabWidget.getChildAt(position).getLeft();
    int newX = 0;

    newX = leftX + (tabWidget.getChildAt(position).getWidth() / 2) - (screenWidth / 2);
    if (newX < 0) {
        newX = 0;
    }
    horizontalScrollView.scrollTo(newX, 0);
}

答案 1 :(得分:0)

我不认为tabhost有这样的行为。据我所知,tabhost可以在没有制表控制器的情况下工作。对于您的情况,图库将替换选项卡控制器,如您所知,库中的选定项目始终位于中间。 然后在gallery的事件监听器中,编写一些代码来控制哪个选项卡将在tabhost中显示。