使用带有ListFragment的DrawerLayout时,通过过敏DrawerLayout中断垂直滚动

时间:2014-05-23 20:49:34

标签: android android-layout expandablelistview drawerlayout

我正在尝试使用DrawerLayout显示两个片段,其中slideout片段具有listview。我主要关注developers site上的示例。

我的一切几乎都在工作,但是当滚动浏览列表视图时,滚动动作中的任何左或右移动都会导致滚动被中断并且drawerLayout会水平移动。

布局

             fragment A
-------------------------------------
|                       |            |
|                       |            |
|                       |            |
|   Content Fragment    | Fragment A | 
|                       |            |
|                       | (ListView) |
|                       |            |
|                       |            |
|                       |            |
--------------------------------------

我的Activity.xml

<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">
 <!-- The main content view -->
 <FrameLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
 <!-- The navigation drawer -->
 <FrameLayout
    android:id="@+id/drawer_right"
    android:layout_width="320dp"
    android:layout_height="match_parent"
    android:layout_gravity="right"/>
</android.support.v4.widget.DrawerLayout>

FragmentA.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="320dp"
android:layout_height="match_parent"
android:background="@color/lightGray">

<android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/swipeRefreshLayout"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ExpandableListView
        android:id="@+id/expandableListView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:groupIndicator="@null"/>
</android.support.v4.widget.SwipeRefreshLayout>

</RelativeLayout>

如果我使用带有DrawerLayout的普通ListView,我没有这个问题,有没有办法阻止DrawerLayouts onTouch事件在我的Listview当前滚动时触发?我已经尝试将我的Fragment的rootview设置为clickable = true,这不起作用。

非常感谢任何建议!

1 个答案:

答案 0 :(得分:1)

事实证明SwipeRefreshLayout导致我的滚动问题。删除布局并使用单独的第三方库为我解决了这个问题。

这是SwipeRefreshLayout上的开放票证:https://code.google.com/p/android/issues/detail?id=69074