在右侧导航抽屉不保持开放 [英] Navigation drawer on right side not staying open

查看:163
本文介绍了在右侧导航抽屉不保持开放的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是滑动的右 NavigationDrawer 来显示一些过滤器。问题是,在右边的抽屉里做一个手势一扔当只有保持开放。如果我改变重力属性启动离开,那么它保持常开。我认为正常的是,其中一个缓慢的拖累,然后放手将保持了抽屉。在右边的抽屉,似乎有一个偏压到闭合位置。

I'm using a slide-from-right NavigationDrawer to display some filters. The problem is that the drawer on the right only stays open when doing a fling gesture. If I change the gravity attribute to start or left, then it stays opened normally. I consider normal to be where a slow drag and then letting go will keep the drawer open. With drawers on the right, there seems to be a bias to the closed position.

我是不是做错了什么?有没有办法让它正常滑?我的用户遇到问题搞清楚,他们需要一扔保持了抽屉。

Am I doing something wrong? Is there a way to get it to slide normally? My users are having trouble figuring out that they need to fling to keep the drawer open.

使用支持库。

需要一扔:

<LinearLayout
    android:id="@+id/filtersDrawer"
    android:layout_width="200dp"
    android:layout_height="fill_parent"
    android:layout_gravity="end"
    android:background="@color/drawer_color"
    android:orientation="vertical" >

不需要一扔:

<LinearLayout
    android:id="@+id/filtersDrawer"
    android:layout_width="200dp"
    android:layout_height="fill_parent"
    android:layout_gravity="start"
    android:background="@color/drawer_color"
    android:orientation="vertical" >

谢谢!

推荐答案

您可以通过使用监听器,并迫使抽屉打开解决这个问题/关闭,当用户已经拖了一定的比例,然后发布了抽屉里,因为这

You can solve this issue by using a listener and forcing the drawer open/closed when the user has dragged a certain percentage, and then released the drawer, as this:

    mDrawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
        private float mLastOffset;
        @Override
        public void onDrawerSlide(View view, float slideOffset) {
            mLastOffset = slideOffset;
        }

        @Override
        public void onDrawerOpened(View view) {

        }

        @Override
        public void onDrawerClosed(View view) {

        }

        @Override
        public void onDrawerStateChanged(int newState) {
            if (newState == DrawerLayout.STATE_SETTLING) {
                if (mLastOffset > 0.5f) {
                    mDrawerLayout.openDrawer(Gravity.END);
                } else {
                    mDrawerLayout.closeDrawer(Gravity.END);
                }
            }
        }
    });

这篇关于在右侧导航抽屉不保持开放的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆