设计错误SwipeRefreshLayout v4 - 拉动刷新

时间:2017-07-19 22:12:56

标签: android

我目前正在制作一个带有网络服务的应用,因此需要始终更新,所以我尝试应用Pull来刷新

当我使用SwipeRefreshLayout v4

时,我的浮动按钮消失了

SwipeRefreshLayout v4

<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fab="http://schemas.android.com/apk/res-auto"
    android:id="@+id/fragment_main"
    ...>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/reciclador"
        ..../>

    <com.melnykov.fab.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ... />   

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

这是我没有实施的时候

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fab="http://schemas.android.com/apk/res-auto"
    android:id="@+id/fragment_main"
    ....>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/reciclador"
        ... />

    <com.melnykov.fab.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ... />   

</RelativeLayout>

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

SwipeRefreshLayout应该只包含一个孩子(ListViewRecyclerView等)才能正常工作。

您应该将FloatingActionButtonSwipeRefreshLayout移至RelativeLayout。这应该有所帮助。

最终布局标记应如下所示:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fab="http://schemas.android.com/apk/res-auto"
    android:id="@+id/fragment_main"
    ....>

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

        <android.support.v7.widget.RecyclerView
            android:id="@+id/reciclador"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            ... />

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

    <com.melnykov.fab.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ... />   

</RelativeLayout>