SwipeRefreshLayout不允许我向上滚动

时间:2016-04-26 12:45:02

标签: android listview swiperefreshlayout

我有一个SwipeRefreshLayout的应用,里面有ListView。当填充ListView时,我可以轻松向下滚动以读取列表中的旧项目,但是当我尝试向上滚动时,即使我尝试向上滚动,此操作也会被误认为是Pull2Refresh操作。无论我在哪里放置手指,它仍然会将其误认为是Pull2Refresh动作。如何滚动回到顶部是一个问题,我怎么能解决这个问题。

这是带有SwipeRefreshLayout的那个片段的XML:

<android.support.v4.widget.SwipeRefreshLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/swipe_refresh_layout_general"
  android:layout_width="match_parent"
  android:layout_height="wrap_content">

  <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.inc.automata.unamupdates.fragments.GeneralNewsFragment">

    <ListView
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:id="@+id/listViewGeneral">
    </ListView>
  </FrameLayout>
</android.support.v4.widget.SwipeRefreshLayout>

2 个答案:

答案 0 :(得分:0)

尝试在listview中使用follwoing属性

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.inc.automata.unamupdates.fragments.GeneralNewsFragment">

    <ListView
        android:id="@+id/listViewGeneral"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:smoothScrollbar="true"
        android:fadeScrollbars="true"></ListView>

</FrameLayout>

答案 1 :(得分:0)

问题是您已经用滑动刷新布局包裹了整个布局。您只应使用SwipeRefreshLayout包装ListView。 Link to original answer

 <android.support.v4.widget.SwipeRefreshLayout
...
>
    <RecyclerView 
     ...
    />
</android.support.v4.widget.SwipeRefreshLayout>