其他分享
首页 > 其他分享> > android – Drawer Layout采用触摸事件而不是导航窗格的元素

android – Drawer Layout采用触摸事件而不是导航窗格的元素

作者:互联网

我的android项目包含2个导航抽屉.一个来自右侧,另一个来自左侧.使用此按钮单击按钮打开:

if (mDrawerLayout.isDrawerOpen(mRightDrawerView))
    mDrawerLayout.closeDrawer(mRightDrawerView);
mDrawerLayout.openDrawer(mLeftDrawerView);

两个抽屉都有自定义布局,使用以下定义:

<?xml version="1.0" encoding="utf-8"?>
<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" >

<FrameLayout
    android:id="@+id/fragment_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<include
    android:id="@+id/left_drawer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    layout="@layout/menu_panel" />

<include
    android:id="@+id/right_drawer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="end"
    layout="@layout/search_panel" />

</android.support.v4.widget.DrawerLayout> 

问题是:当我打开抽屉并尝试捕获其点击事件时(抽屉布局中有按钮和文本视图)抽屉关闭而不是响应点击事件.

我也用过:

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
mDrawerLayout.requestDisallowInterceptTouchEvent(true);

我不希望抽屉里面的触摸事件关闭.

我也试过更改抽屉布局的“可点击”属性.但没用.

任何帮助都非常感谢.谢谢

解决方法:

可能为时已晚,无法回答你的问题,但它会帮助其他人,那些面临同样问题的人……

将Clickable’true’设置为包含的布局,即左右抽屉.可点击事件消耗了触摸.

<?xml version="1.0" encoding="utf-8"?>
<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" >

<FrameLayout
    android:id="@+id/fragment_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<include
    android:id="@+id/left_drawer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:clickable="true"
    layout="@layout/menu_panel" />

<include
    android:id="@+id/right_drawer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="end"
    android:clickable="true"
    layout="@layout/search_panel" />

</android.support.v4.widget.DrawerLayout> 

标签:android,android-layout,navigation-drawer,drawerlayout
来源: https://codeday.me/bug/20190708/1405276.html