Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使progressbar始终低于recyclerView,并且在项目太多时不被挤出屏幕?_Android_Android Layout_Android Recyclerview_Android Constraintlayout_Android Progressbar - Fatal编程技术网

Android 如何使progressbar始终低于recyclerView,并且在项目太多时不被挤出屏幕?

Android 如何使progressbar始终低于recyclerView,并且在项目太多时不被挤出屏幕?,android,android-layout,android-recyclerview,android-constraintlayout,android-progressbar,Android,Android Layout,Android Recyclerview,Android Constraintlayout,Android Progressbar,我正在做一个显示扫描蓝牙设备的布局。布局如下: <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.and

我正在做一个显示扫描蓝牙设备的布局。布局如下:

<?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=".fragments.ScannedListFragment">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_view_scan_list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toTopOf="@id/progressBar_scan_list"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        tools:itemCount="12"
        tools:listitem="@layout/list_item_scanned_list" />

    <ProgressBar
        android:id="@+id/progressBar_scan_list"
        style="?android:attr/progressBarStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@id/recycler_view_scan_list"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

当屏幕有足够的空间显示所有内容时,我想让progressbar保持在recyclerView的底部,并且即使recyclerView中有太多的项目,progressbar也可以完全显示在屏幕底部的上方,而无需滚动

我试着垂直链接两个视图,并带着偏见打包链接,但没有成功。此外,我发现为recyclerView添加
app:layout\u constraintHeight\u max=”“
也可以达到类似的效果。但对于不同的屏幕尺寸,这似乎不是一个通用的解决方案。


<?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=".fragments.ScannedListFragment">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_view_scan_list"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toTopOf="@id/progressBar_scan_list"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        tools:itemCount="12"
        tools:listitem="@layout/list_item_scanned_list" />

    <ProgressBar
        android:id="@+id/progressBar_scan_list"
        style="?android:attr/progressBarStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

这样,它将始终可见。将进度条底部约束设置为父视图和回收器视图高度0dp

通过将进度条底部约束为父视图来创建垂直链,然后将链样式设置为“打包”
,以便两个视图粘在一起,然后将垂直偏移设置为0以将它们与父视图顶部对齐。要防止RecyclerView将进度条推出屏幕,请为RecyclerView设置
app:layout\u constrained height=“true”
属性-当高度设置为
wrap\u content
时,它将强制执行约束

<?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=".fragments.ScannedListFragment">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_view_scan_list"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintVertical_chainStyle="packed"
        app:layout_constraintVertical_bias="0"
        app:layout_constrainedHeight="true"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toTopOf="@id/progressBar_scan_list"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        tools:itemCount="12"
        tools:listitem="@layout/list_item_scanned_list" />

    <ProgressBar
        android:id="@+id/progressBar_scan_list"
        style="?android:attr/progressBarStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@id/recycler_view_scan_list"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

但我希望progressbar随recyclerView的高度动态移动。用你的方法把它固定在底部。