如何以编程方式设置LockDrawerMode

androidnoob

我创建了一个切换抽屉,当用户单击内容视图中显示的项目时,该抽屉将自动从右侧滑动。但是,此时,用户可以手动打开抽屉(用户可以通过从屏幕边缘滑动滑动来滑动打开抽屉),也可以在用户单击显示的项目时自动将其打开。因此,我实现了以下代码行,mDrawer.setDrawerLockMode(1, GravityCompat.END);其中“ 1”定义为:


公共静态最终int LOCK_MODE_LOCKED_CLOSED

抽屉被锁定为关闭状态。用户可能无法打开它,尽管该应用程序可能会以编程方式将其打开。

常数值:1(0x00000001)


但是,在调试时,结果是用户仍然可以手动切换打开抽屉,并且在单击项目时仍可以自动切换抽屉。

实际上,期望的切换结果是,在选择了该项目后,只能将抽屉切换出来,而不是赋予用户手动切换抽屉的权限。

因此,有人可以帮忙看看有什么问题或提出一些建设性的建议吗?

我已附上以下代码供您细读:

mDrawerToggle = new CustomActionBarDrawerToggle(getActivity(), mDrawer);
mDrawer.openDrawer(GravityCompat.END);
mDrawer.setDrawerListener(mDrawerToggle);
//To lock the drawer from being manually toggled
mDrawer.setDrawerLockMode(1, GravityCompat.END);
吉隆

您可以尝试这样做:

首先调用抽屉的布局:

mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);

之后,设置锁定模式,如下所示:

mDrawerLayout.setDrawerLockMode(mDrawerLayout.LOCK_MODE_LOCKED_CLOSED);
getActionBar().setHomeButtonEnabled(false); // This for the App Icon 

然后,如果您想再次解锁抽屉:

   mDrawerLayout.setDrawerLockMode(mDrawerLayout.LOCK_MODE_UNLOCKED); // It is unlocked but it is not shown.

或者

mDrawerLayout.setDrawerLockMode(mDrawerLayout.LOCK_MODE_LOCKED_OPEN); // To Show the drawer opened but it will stay open.

看看这是否对您有帮助。:)

编辑2:

现在我懂了:

声明您的抽屉布局和抽屉列表视图:

mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
mDrawerList = (ListView)findViewById(R.id.list_slidermenu);

在按钮/项目侦听器上,执行以下操作:

   yourButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            mDrawerLayout.openDrawer(mDrawerList); // This will open the button on click of the item

        }
    });

出于解锁的合理性,我只是向您展示了它,以防万一您想再次打开抽屉。

不要锁定您的按钮,只需先尝试我的修改即可。看看是否对您有帮助。

编辑3:

设置您的抽屉列表视图和抽屉布局:

    mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
    mDrawerList = (ListView)findViewById(R.id.list_slidermenu);
    mDrawerLayout.setDrawerLockMode(mDrawerLayout.LOCK_MODE_LOCKED_CLOSED); //prevents user from manually opening the drawer
   getActionBar().setHomeButtonEnabled(false); // Prevents user from opening the drawer using the app icon

然后将其添加到您的侦听器上:

 yourButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            mDrawerLayout.openDrawer(mDrawerList); // This will open the button on click of the item

        }
    });

我在我的应用程序上对此进行了测试,我相信您想要的东西。因此,基本上,即使用户尝试滑动或单击应用程序图标,抽屉也不会打开,但是一旦在内容视图上单击某个项目,抽屉就会打开。我相信这是您想要的输出。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何以编程方式圆角设置随机背景颜色

来自分类Dev

如何以编程方式为ImageView设置动画

来自分类Dev

如何以编程方式设置默认应用启动器?

来自分类Dev

如何以编程方式设置LinearLayout的宽度?

来自分类Dev

如何以编程方式更改文件的Eclipse CDT工具设置?

来自分类Dev

如何以编程方式设置Azure计算服务的实例计数

来自分类Dev

如何以编程方式设置根视图控制器?

来自分类Dev

如何以编程方式设置UIGestureRecognizer的状态?

来自分类Dev

如何以编程方式设置Cron作业?

来自分类Dev

如何以编程方式设置UITableView的dataSource?

来自分类Dev

如何以编程方式设置LockDrawerMode

来自分类Dev

如何以编程方式设置LinearLayout的重力和布局重力

来自分类Dev

如何以编程方式设置WKInterfaceController的backgroundColor?

来自分类Dev

如何以编程方式设置TextFormattingMode?

来自分类Dev

如何以编程方式设置WKInterfaceButton字体?

来自分类Dev

如何以编程方式设置Kendo UI网格列宽

来自分类Dev

JTable打印。如何以编程方式设置分页符?

来自分类Dev

如何以编程方式设置WPF工具包DateTimePicker

来自分类Dev

如何以编程方式设置Recyclerview的高度?

来自分类Dev

如何以编程方式打开以太网设置?

来自分类Dev

如何以编程方式设置DropdownButton的值?

来自分类Dev

如何以编程方式设置ItemsSource属性?

来自分类Dev

如何以编程方式设置SeCreateGlobalPrivilege?

来自分类Dev

如何以编程方式设置Wix OutputName

来自分类Dev

如何以编程方式设置视图的高度?

来自分类Dev

如何以编程方式设置大纲级别

来自分类Dev

如何以编程方式设置 UITableView 的高度

来自分类Dev

如何以编程方式设置 ImageResizer 配置?

来自分类Dev

如何以编程方式设置Textview的属性?

Related 相关文章

  1. 1

    如何以编程方式圆角设置随机背景颜色

  2. 2

    如何以编程方式为ImageView设置动画

  3. 3

    如何以编程方式设置默认应用启动器?

  4. 4

    如何以编程方式设置LinearLayout的宽度?

  5. 5

    如何以编程方式更改文件的Eclipse CDT工具设置?

  6. 6

    如何以编程方式设置Azure计算服务的实例计数

  7. 7

    如何以编程方式设置根视图控制器?

  8. 8

    如何以编程方式设置UIGestureRecognizer的状态?

  9. 9

    如何以编程方式设置Cron作业?

  10. 10

    如何以编程方式设置UITableView的dataSource?

  11. 11

    如何以编程方式设置LockDrawerMode

  12. 12

    如何以编程方式设置LinearLayout的重力和布局重力

  13. 13

    如何以编程方式设置WKInterfaceController的backgroundColor?

  14. 14

    如何以编程方式设置TextFormattingMode?

  15. 15

    如何以编程方式设置WKInterfaceButton字体?

  16. 16

    如何以编程方式设置Kendo UI网格列宽

  17. 17

    JTable打印。如何以编程方式设置分页符?

  18. 18

    如何以编程方式设置WPF工具包DateTimePicker

  19. 19

    如何以编程方式设置Recyclerview的高度?

  20. 20

    如何以编程方式打开以太网设置?

  21. 21

    如何以编程方式设置DropdownButton的值?

  22. 22

    如何以编程方式设置ItemsSource属性?

  23. 23

    如何以编程方式设置SeCreateGlobalPrivilege?

  24. 24

    如何以编程方式设置Wix OutputName

  25. 25

    如何以编程方式设置视图的高度?

  26. 26

    如何以编程方式设置大纲级别

  27. 27

    如何以编程方式设置 UITableView 的高度

  28. 28

    如何以编程方式设置 ImageResizer 配置?

  29. 29

    如何以编程方式设置Textview的属性?

热门标签

归档