android - 从布局上的任意位置右滑打开 NavigationView

标签 android navigationview

我想通过右滑动打开导航 View ,无论右滑动在哪里。默认情况下,您必须在侧面向右滑动,但我想从中间滑动以打开导航 View

最佳答案

您可以使用类似这样的方式增加抽屉的滑动边缘

public static void increaseSwipeEdgeOfDrawer(DrawerLayout mDlSearchDrawer) {
        try {

            Field mDragger = mDlSearchDrawer.getClass().getDeclaredField(
                    "mRightDragger");//mRightDragger or mLeftDragger based on Drawer Gravity
            mDragger.setAccessible(true);
            ViewDragHelper draggerObj = (ViewDragHelper) mDragger
                    .get(mDlSearchDrawer);

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


            mEdgeSize.setInt(draggerObj, <size of the edge here>);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

或者你可以在顶部保留一个与抽屉布局大小相匹配的 View ,分配给它以检测滑动并调用 DrawerLayout#openDrawer(android.view.View)。在上面

关于android - 从布局上的任意位置右滑打开 NavigationView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34877797/

相关文章:

java - 空对象引用上的 navigationView setText 致命异常

android - 如何使用 Retrofit2 发出查询数组请求?

android - 类未找到异常 : Didn't find class "android.support.design.R$styleable"

java - 在 Android 应用程序中从 ImageButton 打开图库

android - fragment 过渡中的缩放动画

android - NavigationView:使用 app:actionLayout 自定义项目布局如何?

android - 优化 Android 中 Mapbox 导航 SDK 的电池使用

android - 如何在 NavigationView 中设置默认选中项?

android - 在 onDestroy() 中停止计时器

android - 动画集性能问题