【问题标题】:Keep Navigation Drawer Open保持导航抽屉打开
【发布时间】:2018-10-19 17:23:26
【问题描述】:

我正在构建一个应用程序,我想在导航抽屉中显示一些附加信息,但是在导航抽屉内部单击后它默认关闭,我希望它保持打开状态,直到用户点击导航抽屉外部或按下返回键

这可能吗?以及如何实现它?如果不是,我如何在不使用导航视图的情况下实现它

我尝试过使用:mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN); 在我的 onCreate 和 onNavigationItemSelected ...在 onCreate 上使用它会默认打开导航抽屉,让我无法关闭它

这是我的抽屉监听器代码;

DrawerLayout   drawer = findViewById(R.id.drawer_layout);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

【问题讨论】:

  • 请发布您的监听器代码。
  • 是的,请发布您的代码
  • 我为什么投反对票:您忽略了查看代码的请求。 SO 要求提出问题的人提供 MVC。不发布您的代码会使您难以提供满足您要求的答案。此外,很多猜测,很多来回试图提供一个令人满意的解决方案。如果您编辑您的问题并发布您的代码,那么我将更改我的投票。
  • 你弄错了@Brans,我的抽屉监听器工作正常。我要做的是防止导航抽屉在用户与之交互时关闭。除非用户触摸抽屉外或按下后退按钮
  • 这正是我之前所做的,所以如果您阅读我对他的回复的评论,它并没有帮助。我正在使用默认的导航抽屉布局,它会自动生成抽屉监听器

标签: android navigation navigation-drawer


【解决方案1】:
    DrawerLayout drawerLayout; // Global variable

    drawerLayout = findViewById(R.id.drawer_layout);
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
        toggle.syncState();


        drawerLayout.openDrawer(GravityCompat.START); // Use this line of code where you want to keep open the drawerLayout. 

如果您仍有问题需要了解,请告诉我。

【讨论】:

  • 我要做的是在导航抽屉中进行触摸输入时覆盖导航抽屉的默认关闭
  • drawerLayout.closeDrawer(GravityCompat.START); 使用这行代码可以关闭抽屉导航。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多