【问题标题】:How to prevent opening a fragment in navigation drawer if that fragment is already opened如果该片段已打开,如何防止在导航抽屉中打开该片段
【发布时间】:2016-05-06 12:21:13
【问题描述】:

如果该片段已打开,如何防止在导航抽屉中打开该片段。例如,我首先在我的Nav Drawer 中有一个设置片段,如果单击该片段它会打开,那么现在如果我再次单击它不应该打开同一个片段两次,因为这会在点击返回按钮时导致问题。

【问题讨论】:

  • 代码在哪里?

标签: java android navigation-drawer


【解决方案1】:

您可以保持片段在当前打开的列表中的位置。例如,维护一个名为mSelectedPosition 的变量,它在onCreate() 中初始化为-1。然后DrawerItemClickListener 中的onItemClick() 中的代码可以类似于

if (position == mSelectedPosition) {
    closeDrawer();
    return;
}

mSelectedPosition = position;
// Continue your work here.

【讨论】:

    【解决方案2】:

    您可能应该在 onDrawerClosed() 回调中更改新的 Fragment。维护一个成员变量,例如 currentFragmentPosition。

    public void onDrawerClosed(View view) 
    {
        super.onDrawerClosed(view);
    
        if(clickedPosition != currentFragmentPosition)
        {
            // change Fragment
        }
        currentFragmentPosition = clickedPosition;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多