7

我是新来的Android和在我的项目有一定的要求我如何设置所选选项卡必须在中间

即我有六个选项卡,但我秀只有三个在屏幕上的标签和标签的其余部分我用滚动型。这里选定的标签项目必须在中间,首先当我进入屏幕时,我显示中间项目处于活动状态(即选中状态)。

这很好,但我如何设置这个中间项目作为中间当我滚动其余标签?

有人可以给出解决方案的建议。

+0

你看着使用侦听器将检测滚动和比你手动设置在回调方法selectedTab? – hovanessyan 2011-12-15 08:53:21

+0

感谢您的建议,但我没有工作,下面的滚动监听器(我在XML声明Horizaontalscrollview)TestHorizo​​ntalScrollView sView =(TestHorizo​​ntalScrollView)findViewById(R.id.horizo​​ntalScrollView);公共类TestHorizo​​ntalScrollView扩展Horizo​​ntalScrollView { \t公共TestHorizo​​ntalScrollView(上下文上下文){ \t super(context); \t} \t @覆盖 \t保护无效onScrollChanged(INT升,INT吨,INT oldl,INT oldt){ \t \t \t super.onScrollChanged(L,T,oldl,oldt); \t} \t} – Gopi 2011-12-15 09:01:41

回答

0

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

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); 
} 
相关问题