触摸任意位置以滑动导航抽屉的打开菜单

Che*_*eng 21 android navigation-drawer

对于jfeinstein10(https://github.com/jfeinstein10/SlidingMenu)的滑动菜单,我可以在应用程序的任何位置滑动以滑动打开菜单.

对于Google新推出的导航抽屉http://developer.android.com/design/patterns/navigation-drawer.html#side-nav,有什么方法可以让我有类似的行为吗?

到目前为止,从文档中我看到它仅限于从边缘滑动或触摸应用程序图标.

用户可以通过从屏幕左边缘轻​​扫或触摸操作栏上的应用程序图标将导航抽屉带到屏幕上.

Che*_*ter 10

谷歌,从他们的教学方式"如果用户触摸屏幕的左边缘(距离左边20 dp)"的方式,似乎他们不想要这个功能.

请参阅http://developer.android.com/design/patterns/navigation-drawer.html

"用户可以通过从屏幕左边缘轻​​扫或触摸操作栏上的应用程序图标将导航抽屉带到屏幕上."

他们不会在屏幕上的任何位置说或滑动.他们在任何应用程序(G +,Gmail等)中也没有这种功能,所以如果你想要这个功能,你应该坚持自己编写(带手势)或第三方(例如jfeinstein10).

编辑:Youtube应用程序确实让你滑动任何地方,但我至少有版本(4.5.17)看起来不像是在使用他们的新api.

  • 这个.既然有官方设计模式,最好遵循它.用户将习惯于处理导航抽屉的官方方式,并希望所有应用都遵循它. (4认同)

Max*_*mov 10

我找到了解决方案.您可以配置触摸边距并使其与视图一样宽.链接在这里

设置Android导航抽屉的拖动边距


moa*_*emi 6

你可以用它

DrawerLayout mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
Field mDragger = mDrawerLayout.getClass().getDeclaredField(
    "mLeftDragger");//mRightDragger or mLeftDragger based on Drawer Gravity
mDragger.setAccessible(true);
ViewDragHelper draggerObj = (ViewDragHelper) mDragger
    .get(mDrawerLayout);

Field mEdgeSize = draggerObj.getClass().getDeclaredField(
    "mEdgeSize");
mEdgeSize.setAccessible(true);
int edge = mEdgeSize.getInt(draggerObj);

mEdgeSize.setInt(draggerObj, edge * 3); 
Run Code Online (Sandbox Code Playgroud)