android 在回收程序视图项目上绘制浮动视图

xbp102n0  于 2022-11-03  发布在  Android
关注(0)|答案(1)|浏览(137)

我想在回收器视图项目外绘制一个浮动视图。它就像Excel中的工具提示,每个单元格都是一个项目,有些项目会有工具提示:

我试着用

clipChildren="false"

但它仍然被其他项目覆盖。
这是项目布局:

<?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"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:clipChildren="false"
    android:orientation="vertical">

    <View
        android:id="@+id/box"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:background="#f0f0"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <View
        android:layout_width="30dp"
        android:layout_height="20dp"
        android:background="#ff00"
        android:translationX="10dp"
        android:translationY="15dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

这是带有回收器视图的活动布局:

<?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="wrap_content"
    android:clipChildren="false"
    tools:context=".MainActivity">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clipChildren="false"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

这是我的成果:

而预期的结果是这样的:

有没有办法把这个存档?

ssm49v7z

ssm49v7z1#

看起来每个 RecyclerView 项目都部分覆盖了前一个项目。我不清楚您是如何获得第一个图像(不是Excel图像,而是下一个)的,但您可以尝试在XML中为 RecyclerView 设置以下属性。结果是以与正常情况相反的顺序写入项目。

<androidx.recyclerview.widget.RecyclerView
    ...
    android:clipChildren="false"
    app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
    app:layout_constraintTop_toTopOf="parent"
    app:reverseLayout="true" />

你也可以在代码中设置这些值,或者这些值的任意组合。我会尝试一下这些值,看看它能给你带来什么。

相关问题