【发布时间】:2016-05-06 12:21:13
【问题描述】:
如果该片段已打开,如何防止在导航抽屉中打开该片段。例如,我首先在我的Nav Drawer 中有一个设置片段,如果单击该片段它会打开,那么现在如果我再次单击它不应该打开同一个片段两次,因为这会在点击返回按钮时导致问题。
【问题讨论】:
-
代码在哪里?
标签: java android navigation-drawer
如果该片段已打开,如何防止在导航抽屉中打开该片段。例如,我首先在我的Nav Drawer 中有一个设置片段,如果单击该片段它会打开,那么现在如果我再次单击它不应该打开同一个片段两次,因为这会在点击返回按钮时导致问题。
【问题讨论】:
标签: java android navigation-drawer
您可以保持片段在当前打开的列表中的位置。例如,维护一个名为mSelectedPosition 的变量,它在onCreate() 中初始化为-1。然后DrawerItemClickListener 中的onItemClick() 中的代码可以类似于
if (position == mSelectedPosition) {
closeDrawer();
return;
}
mSelectedPosition = position;
// Continue your work here.
【讨论】:
您可能应该在 onDrawerClosed() 回调中更改新的 Fragment。维护一个成员变量,例如 currentFragmentPosition。
public void onDrawerClosed(View view)
{
super.onDrawerClosed(view);
if(clickedPosition != currentFragmentPosition)
{
// change Fragment
}
currentFragmentPosition = clickedPosition;
}
【讨论】: