我是新来的Android和在我的项目有一定的要求我如何设置所选选项卡必须在中间
即我有六个选项卡,但我秀只有三个在屏幕上的标签和标签的其余部分我用滚动型。这里选定的标签项目必须在中间,首先当我进入屏幕时,我显示中间项目处于活动状态(即选中状态)。
这很好,但我如何设置这个中间项目作为中间当我滚动其余标签?
有人可以给出解决方案的建议。
我是新来的Android和在我的项目有一定的要求我如何设置所选选项卡必须在中间
即我有六个选项卡,但我秀只有三个在屏幕上的标签和标签的其余部分我用滚动型。这里选定的标签项目必须在中间,首先当我进入屏幕时,我显示中间项目处于活动状态(即选中状态)。
这很好,但我如何设置这个中间项目作为中间当我滚动其余标签?
有人可以给出解决方案的建议。
我不认为tabhost有这样的行为。据我所知,tabhost可以在没有标签控制器的情况下工作。对于您的情况,画廊将取代选项卡控制器,如您所知,画廊中的选定项目始终停留在中间。 然后在图库的事件侦听器中,编写一些代码来控制哪个选项卡将显示在tabhost中。
检查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);
}
你看着使用侦听器将检测滚动和比你手动设置在回调方法selectedTab? – hovanessyan 2011-12-15 08:53:21
感谢您的建议,但我没有工作,下面的滚动监听器(我在XML声明Horizaontalscrollview)TestHorizontalScrollView sView =(TestHorizontalScrollView)findViewById(R.id.horizontalScrollView);公共类TestHorizontalScrollView扩展HorizontalScrollView { \t公共TestHorizontalScrollView(上下文上下文){ \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