背景
我有一个viewPager和一个tabHost,用于在页面之间导航 .
在某些情况下,viewPager中的片段会想要禁止导航,甚至会显示一个对话框,要求用户验证片段中所做的更改是否会被取消 .
如果用户确认,我会允许导航,如果没有,我会拒绝 .
问题
我需要在用户尝试导航到另一个选项卡时收到通知,并且(在我创建的某些条件下)禁止/允许它 .
我尝试了什么
我发现的唯一功能是如何禁用切换 .
对于viewPager,我使用:
mViewPager.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(final View v, final MotionEvent event) {
return !mIsTabsSwitchingEnabled;
}
});
对于tabHost,我使用:
mTabHost.getTabWidget().setEnabled(mIsTabsSwitchingEnabled);
然而,我需要的是完全不同的 - 我需要捕获开始导航的事件,并且能够告诉它我是否允许它 .
这个问题
我该如何解决这个问题?
如何在开始导航时收到通知,并在需要时取消?
2 回答
你应该使用Tab TabHost.OnTabChangeListener
好吧,我现在通过使用下一个代码解决了它,我希望它涵盖了所有内容 .
如果有人能想到可能更好的另一种解决方案,请写下来 .