我使用标签主机和以下代码将所选标签居中:
public void centerTabItem(int position) {
final TabWidget tabWidget = mTabHost.getTabWidget();
final int leftX = tabWidget.getChildAt(position).getLeft();
int newX = 0;
newX = leftX + (tabWidget.getChildAt(position).getWidth() / 2) - (mScreenSize.x / 2);
if (newX < 0) {
newX = 0;
}
这非常有效,但问题是当tabhost第一次启动时不起作用。 意思是说我有10个标签,我想用第5个标签启动tabhost。 所以我添加标签,然后执行
mTabHost.setCurrentTab(dummyIndexSelected);
centerTabItem(dummyIndexSelected);
第5个标签显示为已选中但不在中间。
更新:更好的解释: 我正在使用带有片段的tabhost。问题是,假设有20个选项卡,屏幕上只显示5个选项卡。现在,如果当前选项卡为16,则该选项卡的片段将可见,但当前选项卡选择将不可见,因为它将位于屏幕外部。所以我想在屏幕上显示当前标签。
有人可以帮忙吗?
感谢。