代码之家  ›  专栏  ›  技术社区  ›  NickUnuchek Romulano

如何使SwipeRefreshLayout包装内容?

  •  0
  • NickUnuchek Romulano  · 技术社区  · 7 年前

    这是我的布局 mydialog_fragmet.xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.v4.widget.SwipeRefreshLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    
        <LinearLayout
            android:id="@+id/contentLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/appBackgroundColorLight"
            android:orientation="vertical"
            >
    
            <android.support.v7.widget.RecyclerView
                android:id="@+id/recyclerView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:clipToPadding="false"
                android:paddingTop="16dp"
                android:scrollbarSize="2dp"
                android:scrollbarStyle="outsideOverlay"
                android:scrollbarThumbVertical="@color/colorAccent"
                />
    
            <include layout="@layout/view_add_place_button"/>
    
        </LinearLayout>
    </android.support.v4.widget.SwipeRefreshLayout>
    

    结果线性布局 id/contentLayout 变成 match_parent

    enter image description here

    但是当我使用没有 SwipeRefreshLayout 内容是 wrap_content mydialog_fragmet.xml文件 :

        <?xml version="1.0" encoding="utf-8"?>
        <LinearLayout
                xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:app="http://schemas.android.com/apk/res-auto"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/appBlue"
                android:orientation="vertical"
                >
    
                <android.support.v7.widget.RecyclerView
                    android:id="@+id/placesRecyclerView"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:clipToPadding="false"
                    android:paddingTop="16dp"
                    android:scrollbarSize="2dp"
                    android:scrollbarStyle="outsideOverlay"
                    android:scrollbarThumbVertical="@color/colorAccent"
                    app:maxHeight="300dp"
                    />
    
                <include layout="@layout/view_add_place_button"/>
    
            </LinearLayout>
    

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  -1
  •   NickUnuchek Romulano    7 年前

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        >
    
        <com.example.views.MaxHeightSwipeRefreshLayout
            android:id="@+id/swipeRefreshLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:maxHeight="382dp">//size 382 = 300(RecyclerView) + 82 (addButton)
    
            <com.example.views.MaxHeightNestedScrollView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:maxHeight="382dp">
    
                <LinearLayout
                    xmlns:android="http://schemas.android.com/apk/res/android"
                    xmlns:app="http://schemas.android.com/apk/res-auto"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@color/appBackgroundColorLight"
                    android:orientation="vertical"
                    tools:background="@color/appBlue"
                    >
    
                    <com.example.views.MaxHeightRecyclerView
                        android:id="@+id/placesRecyclerView"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:clipToPadding="false"
                        android:paddingTop="16dp"
                        android:scrollbarSize="2dp"
                        app:maxHeight="300dp"
                        android:scrollbarStyle="outsideOverlay"
                        android:scrollbarThumbVertical="@color/colorAccent"
                        />
    
                    <include layout="@layout/view_add_place_button"/>
    
                </LinearLayout>
            </com.example.views.MaxHeightNestedScrollView>
    
        </com.example.views.MaxHeightSwipeRefreshLayout>
    
    </LinearLayout>
    

    MaxHeight* https://stackoverflow.com/a/48728490/2425851