解决DrawerLayout不能全屏滑动的问题
来源:互联网 发布:js中==和===的区别 编辑:程序博客网 时间:2024/05/16 06:21
前言
对于如下效果的侧边菜单栏,android SDK提供了DrawerLayout这个控件可以完美的实现,但是有一个问题,使用这个控件之后只能从左侧(或者右侧)边缘滑动才能显示菜单栏。
解决办法
如果想要全屏实现右滑出现菜单,只需要如下两步:
一、 添加下面的代码
private void setDrawerLeftEdgeSize (Activity activity, DrawerLayout drawerLayout, float displayWidthPercentage) { if (activity == null || drawerLayout == null) return; try { // 找到 ViewDragHelper 并设置 Accessible 为true Field leftDraggerField = drawerLayout.getClass().getDeclaredField("mLeftDragger");//Right leftDraggerField.setAccessible(true); ViewDragHelper leftDragger = (ViewDragHelper) leftDraggerField.get(drawerLayout); // 找到 edgeSizeField 并设置 Accessible 为true Field edgeSizeField = leftDragger.getClass().getDeclaredField("mEdgeSize"); edgeSizeField.setAccessible(true); int edgeSize = edgeSizeField.getInt(leftDragger); // 设置新的边缘大小 Point displaySize = new Point(); activity.getWindowManager().getDefaultDisplay().getSize(displaySize); edgeSizeField.setInt(leftDragger, Math.max(edgeSize, (int) (displaySize.x * displayWidthPercentage))); } catch (NoSuchFieldException e) { } catch (IllegalArgumentException e) { } catch (IllegalAccessException e) { }}
二、调用这个方法
第一个参数传入当前的Activity,第二个参数传入drawerlayout的对象,最后一个参数 传 1,即可实现全屏滑动。如果你想让右侧菜单也是全屏,只要将对应的 “mLeftDragger” 改为 “mRightDragger”。
阅读全文
0 0
- 解决DrawerLayout不能全屏滑动的问题
- 解决DrawerLayout的不能全屏滑动的问题
- 高大上的侧滑菜单DrawerLayout,并解决不能全屏滑动的问题
- 解决drawerlayout嵌套listview 导致listview不能滑动的问题
- 完美解决DrawerLayout全屏滑动及嵌套viewpager滑动冲突问题
- Android的DrawerLayout全屏滑动显示
- 解决DrawerLayout以及viewpager点击或者滑动后卡顿的问题
- 解决Flex不能全屏的问题
- DrawerLayout不能滑动关闭的解决办法
- Android自定义View,实现全屏滑动的DrawerLayout
- android 解决ScrollView嵌套ListView的问题,不能全屏,全屏不能显示下面控件
- 康柏笔记本显示不能全屏问题的解决
- Windows7下解决所有游戏不能全屏的问题。
- VM中解决Ubuntu不能全屏的问题
- 修改注册表解决游戏不能全屏问题
- 解决jscollpan不能出现水平滑动条的问题
- 解决!Gallery中嵌套ListView,Gallery不能滑动的问题
- 解决ViewPager嵌套后子ViewPager不能滑动的问题
- Codeforces Round #441 C. Classroom Watch
- 数据安全-欢迎来稿
- 【知识整理】Node.js-Koa之Context、HTTP Response类型
- Scrapy安装报错:AttributeError: 'module' object has no attribute 'OP_NO_TLSv1_1'解决办法
- slf4j-api、slf4j-log4j12以及log4j之间的关系
- 解决DrawerLayout不能全屏滑动的问题
- 第五周 项目2
- 拷贝构造函数为什么使用引用类型
- 常用正则表达式大全,手机、电话、邮箱、身份证(最严格的验证)、IP地址、网址、日期等,一般前台js验证
- cordova build android 报错Execution failed for task ':mergeDebugResources'.某些输入文件使用或覆盖了过时的API
- App 接外包
- 第一篇博客
- apigen生成接口文档并同步到服务器
- LDA的评价标准