我有一个标签栏,其中1个标签在新活动中打开相机。选中此选项卡后,我希望拒绝该选项卡选项,并且希望之前选择的选项卡保持选中状态。
我有一个activeFragment
变量,我尝试用它来重新选择之前使用getSupportActionBar().setSelectedNavigationItem(0);
选择的标签但这不起作用。我已经尝试在选择CAMERA选项卡时不调用ft.commit()
,但这也不起作用。如何拒绝此选项卡被选中,或者至少立即重新选择之前选择的选项卡?
非常感谢!
答案 0 :(得分:0)
要在实现不允许选择选项卡时选择onTabSelected()中的选项卡,我发现您可以使用以下内容:
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
boolean bOK = true;
if (tab.getPosition() == 1) {
if (!checkReadyToChangeTab()) {
Toast.makeText(activity, "Cannot change tab!", Toast.LENGTH_SHORT).show();
bOK = false;
// reselect tab 0
final Handler handler = new Handler();
final Runnable runnable = new Runnable() {
public void run() {
getSupportActionBar().selectTab(getSupportActionBar().getTabAt(0));
}
};
handler.postDelayed(runnable, 10);
}
}
if (bOK) {
ft.replace(R.id.fragment_container, fragment);
}
}