Android 带webview的导航抽屉在滚动后自动关闭

Android 带webview的导航抽屉在滚动后自动关闭,android,Android,我在导航抽屉上放了一个网络视图;webview显示有关当前UI的格式化文本,以便用户熟悉功能 不幸的是,在webview上下滚动后(webview的水平滚动被禁用),当我将手指从webview上提起后,导航抽屉会自动关闭 当用户释放时,如何防止导航抽屉自动关闭 编辑: 其他发现。。。我在抽屉的布局上附加了一个OnTouchListener(),它除了返回true之外什么都不做。这可防止在触摸导航抽屉上的空白时自动关闭。要了解这是如何做到的,请查看并查看“实验性”注释 不幸的是当用户无法在webv

我在导航抽屉上放了一个网络视图;webview显示有关当前UI的格式化文本,以便用户熟悉功能

不幸的是,在webview上下滚动后(webview的水平滚动被禁用),当我将手指从webview上提起后,导航抽屉会自动关闭

当用户释放时,如何防止导航抽屉自动关闭

编辑: 其他发现。。。我在抽屉的布局上附加了一个OnTouchListener(),它除了返回true之外什么都不做。这可防止在触摸导航抽屉上的空白时自动关闭。要了解这是如何做到的,请查看并查看“实验性”注释

不幸的是当用户无法在webview上完美地上下滚动时,它不会阻止导航抽屉关闭。 例如,如果拖动的水平组件非常小,则在webview上上下滚动将关闭抽屉。

因此,防止过度热情关闭抽屉的(无麻烦)解决方案是:一旦抽屉打开,锁定其打开,并使用按钮触发closeDrawer()。下面的代码显示了如何管理锁定/解锁状态。它不包括调用closeDrawer()的按钮,因为这是非常基本的

在XML中,抽屉布局的id为:

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
import android.support.v4.widget.DrawerLayout;

public class MyActivity extends Activity implements DrawerLayout.DrawerListener
{

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layoutwithdrawer);

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

        mDrawerLayout.setDrawerListener(this);
    }

    @Override
    public void onDrawerClosed(View arg0) {
        // allow swiping to open the drawer
        mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
    }

    @Override
    public void onDrawerOpened(View arg0) {
        // disable swiping so that the drawer can't be closed by accident when scrolling through webview
        mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);
    }

    @Override
    public void onDrawerSlide(View arg0, float arg1) {}

    @Override
    public void onDrawerStateChanged(int arg0) {}
}