我正在尝试使用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,这不起作用。
非常感谢任何建议!
答案 0 :(得分:1)
事实证明SwipeRefreshLayout导致我的滚动问题。删除布局并使用单独的第三方库为我解决了这个问题。
这是SwipeRefreshLayout上的开放票证:https://code.google.com/p/android/issues/detail?id=69074