在tabhost应用程序中;
当我在标签1活动中更改激活的标签时;通过运行此代码:
((TabActivity) getParent()).getTabHost().setCurrentTab(2);
((TabActivity) getParent()).getTabHost().setCurrentTab(2);
选项卡2正确显示,但是,标签1活动未移至"暂停" state及其onPause()方法未被调用。
同样,当我想切换回选项卡1时,它的onResume()方法没有被调用(正如我们所期望的那样,因为状态之前没有改变过)。
为什么国家不会改变?我该如何解决这个问题?
答案 0 :(得分:0)
实际上,切换选项卡时片段不会暂停,因为它们与活动相关联。来自文档:
onPause():片段不再与用户交互,因为其活动正在暂停或片段操作正在活动中修改它。
onResume():使片段与用户交互(基于其包含的活动被恢复)。
相反,您可以使用ActionBar选项卡,并让您的活动实现TabListener
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
pager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}