垂直偏差和指南在 recyclerview android 中不起作用

Posted

技术标签:

【中文标题】垂直偏差和指南在 recyclerview android 中不起作用【英文标题】:Vertical bias and guidlines are not working in recyclerview android 【发布时间】:2021-12-10 16:53:51 【问题描述】:

我想使用垂直偏移来始终查看顶部,但是我想使用指南来限制屏幕上的高度。但是,如果我使用高度环绕内容,直到我将其设置为高度 0dp,它才会起作用。有什么更好的方法吗?

<?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_
    android:layout_
    android:background="@color/white">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recylerview"
        android:layout_
        android:layout_
        android:paddingStart="10dp"
        android:paddingEnd="10dp"
        android:paddingBottom="10dp"
        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
        app:layout_constraintBottom_toBottomOf="@+id/guidelines"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0" />


<androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideline"
        android:layout_
        android:layout_
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.9" />
    </androidx.constraintlayout.widget.ConstraintLayout>

添加@Ivo 回答后

<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_
    android:layout_
    android:background="@color/white">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/RecyclerView"
        android:layout_
        android:layout_
        android:paddingStart="10dp"
        android:paddingEnd="10dp"
        android:paddingBottom="10dp"
        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
        app:layout_constraintBottom_toTopOf="@+id/guideline"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHeight_default="wrap"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideline"
        android:layout_
        android:layout_
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.9" />

</androidx.constraintlayout.widget.ConstraintLayout>

但问题是我的最后一个视图正在切割

【问题讨论】:

现在到底出了什么问题?我认为它现在是否已在指南中被切断?这不正是你想要的吗?或者您希望它如何工作? @IvoBeckers 我的 recylerview 低于指导线。我不想在指导线之外查看,我希望默认高度换行 【参考方案1】:

我不确定我是否完全理解它,但我认为您实际上希望在您的指南中使用 android:orientation="horizontal" 而不是 android:orientation="vertical"

编辑:

尝试使用 0dp 并将 app:layout_constraintHeight_default="wrap" 添加到您的回收站视图中

【讨论】:

如果我在指南中使用水平,我如何限制回收站视图的高度? 一条准则就是一条线。你希望你的 recyclerview 高于这条线。所以这条线从左到右。所以它是一条水平线 你说得对,我更新了代码。 但主要问题是如果我将 recylerview 高度设置为 0dp 它会限制行。但是,如果我使用包装内容,它就不起作用。我主要想要屏幕顶部的回收站视图。 是的,例如,如果我的项目是一两个,我想在屏幕顶部显示。如果项目超过 5 比我想显示完整的 recyclerview 直到指南。

以上是关于垂直偏差和指南在 recyclerview android 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

创建具有水平和垂直滚动的 RecyclerView

同一滚动下的水平和垂直RecyclerView

在水平和垂直的recyclerview中膨胀布局,具有recycler视图的FlexboxLayout添加视图水平自动垂直

嵌套在 BottomSheet 中的 RecyclerView(水平)防止垂直滚动

具有垂直和水平滚动的 Recyclerview

RecyclerView中的彩色线条