解决DrawerLayout不能全屏滑动的问题
2017-10-19 11:21
1756 查看
前言
对于如下效果的侧边菜单栏,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”。相关文章推荐
- 解决DrawerLayout的不能全屏滑动的问题
- 高大上的侧滑菜单DrawerLayout,并解决不能全屏滑动的问题
- Android 高大上的侧滑菜单DrawerLayout,解决了不能全屏滑动的问题
- 完美解决DrawerLayout全屏滑动及嵌套viewpager滑动冲突问题
- 解决drawerlayout嵌套listview 导致listview不能滑动的问题
- 解决DrawerLayout以及viewpager点击或者滑动后卡顿的问题
- 通过监听手势滑动解决DrawerLayout只能边缘打开抽屉问题
- swipe.js工具包实现手机web滑动轮播效果存在jQuery对象不能使用问题并解决(个人项目经验)
- glmis项目工作日志1_使用RecyclerView_DrawerLayout全屏滑动_使用ButterKnife
- 更改显卡设置解决Win 7下玩CF不能全屏的问题
- 解决ViewPager嵌套后子ViewPager不能滑动问题
- 解决Flex不能全屏的问题
- 解决 scrollview嵌套recyclerview 中不能滑动,高度不正常的问题。
- 解决jscollpan不能出现水平滑动条的问题
- 解决scrollView中嵌套编辑框导致不能上下滑动的问题
- 修复在“Android 在ScrollView中嵌入ViewPage后ViewPage不能很好的工作的问题解决”这篇博客中MyScrollView出现滑动一会就不会上下滑动的问题
- ”不能load layout"问题解决
- 解决!Gallery中嵌套ListView,Gallery不能滑动的问题
- 解决jscollpan不能出现水平滑动条的问题
- Android 中 DrawerLayout + ViewPager 怎么解决滑动冲突?