SwiperFreshLayout回收器视图和底部栏使用什么布局

6l7fqoea  于 2022-10-09  发布在  Android
关注(0)|答案(1)|浏览(173)

使用此布局:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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="match_parent"
    android:gravity="center"
    tools:context=".ClistsListFragment">

    <TextView
        android:id="@+id/noClistRegistered"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/displayNoClistRegistered"
        android:visibility="invisible" />

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

        <LinearLayout
            android:id="@+id/bottomBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <Button
                android:id="@+id/add"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Add" />
        </LinearLayout>

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

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

        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

    </LinearLayout>

</FrameLayout>

我在“BottomBar”下方看到了Swiperefresh/Recumerview,显示屏已经满了,一切都运行得很好。

但我想要的是“BottomBar”,位于卷帘/回收器视图的下方,如果我在布局中颠倒它,我的“BottomBar”就会消失,消失在视线之外。

我尝试了约束布局和其他方法,但我从来没有得到相同的结果,只是颠倒了过来。充其量我只能拥有一半的BottomBar,这是不够的。

Swiperefresh和/或recumerview的android:layout_height="match_parent"不会改变任何东西。

请注意,我不想为任何元素设置高度。我想要充分利用版面的功能,能够根据我的选择进行订购。

quhf5bfb

quhf5bfb1#

我终于成功了,如下。我不知道为什么我以前不能这么做。可能是某个地方弄错了。

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    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="match_parent"
    tools:context=".ClistsListFragment">

    <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
        android:id="@+id/swiperefresh"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toTopOf="@id/buttonBox"
        app:layout_constraintTop_toTopOf="parent">

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/RecyclerViewClists"
            android:layout_width="match_parent"
            android:layout_height="0dp"/>

    </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

    <TextView
        android:id="@+id/noClistRegistered"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/noClistRegistered"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <LinearLayout
        android:id="@+id/buttonBox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent">

        <Button
            android:id="@+id/add"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/add"/>
    </LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

相关问题