【问题标题】:How to keep closed the Sliding Menu even when user slides to open it?即使用户滑动打开滑动菜单,如何保持关闭?
【发布时间】:2019-01-08 11:33:20
【问题描述】:

在我的应用程序中,我不希望抽屉式菜单在用户滑动时打开一些屏幕。我怎样才能做到这一点?该应用仅使用一个 Activity,其余为片段。

【问题讨论】:

    标签: android menu navigation-drawer slidingdrawer


    【解决方案1】:

    即使用户滑动打开滑动菜单,如何保持关闭?

    在您的Activity 中使用以下方法并根据需要调用它。

     public void enableViews(boolean enable) {
           if (enable) {
                //You may not want to open the drawer on swipe from the left in this case
                drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
                // Remove hamburger
                toggle.setDrawerIndicatorEnabled(false);
                // Show back button
                getSupportActionBar().setDisplayHomeAsUpEnabled(true);
                // when DrawerToggle is disabled i.e. setDrawerIndicatorEnabled(false), navigation icon
                // clicks are disabled i.e. the UP button will not work.
                // We need to add a listener, as in below, so DrawerToggle will forward
                // click events to this listener.
                toggle.setToolbarNavigationClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        // Doesn't have to be onBackPressed
                        onBackPressed();
                    }
                });
            } else {
                //You must regain the power of swipe for the drawer.
                drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
                // Remove back button
                getSupportActionBar().setDisplayHomeAsUpEnabled(false);
    
                // Show hamburger
                toggle.setDrawerIndicatorEnabled(true);
                // Remove the/any drawer toggle listener
                toggle.setToolbarNavigationClickListener(null);
            }
        }
    

    注意:-调用enableViews(true)锁定,enableViews(false)解锁

    【讨论】:

    • 我有多个片段。我可以在每个片段中编写这段代码。我需要一些可以写在activity中的东西
    • 您在活动中执行此操作,并在打开片段时在活动中调用它。
    • @Miki 检查编辑答案。
    【解决方案2】:

    试试这个:

    mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
    

    【讨论】:

      猜你喜欢
      • 2016-01-06
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多