简体   繁体   中英

How to make a view scrollable which contains swipe refresh layout?

I'm trying to make a view scrollable which contains a swipe refresh layout. My xml is here

<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    android:scrollbars="none"
    xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <androidx.cardview.widget.CardView
        android:id="@+id/post"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <include layout="@layout/layout_post" />
    </androidx.cardview.widget.CardView>

    <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
        android:id="@+id/swipe_refresh_layout_comments"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/comment_recycler_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>

But it doesn't shows content's of recycler-view . Only shows content's of Cardview 在此处输入图片说明 Without using NestedScrollView it show's like below. It show's both contents of cardivew and recyler view. But I want to make my whole screen scrollable. What I'm doing wrong? 在此处输入图片说明

The SwipeRefreshLayout will take the full height, you need to add it as the parent for your xml in your case as:

<?xml version="1.0" encoding="utf-8"?>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swipe_refresh_layout_comments"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.core.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:scrollbars="none">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <androidx.cardview.widget.CardView
                android:id="@+id/post"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <include layout="@layout/layout_post" />

            </androidx.cardview.widget.CardView>

            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/comment_recycler_view"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
        </LinearLayout>

    </androidx.core.widget.NestedScrollView>

</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM