首页 > 解决方案 > 如何将android布局的元素放在另一个上

问题描述

我有以下问题:我想在 android 布局文件中将 CardView 放在另一个 CardView 上。所以在 android studio 布局编辑器中,结果是这样的,这就是我想要的:cardView 在矩形 CardView 的右上角,在相同的高度

我想要的是

但是如果我启动模拟器,结果是这样的:

我得到的结果

这是两个cardView的代码:

    <androidx.cardview.widget.CardView
        android:id="@+id/dati1h"
        android:layout_width="300dp"
        android:layout_height="483dp"
        android:layout_marginTop="90dp"
        android:layout_marginBottom="162dp"
        app:cardCornerRadius="8dp"
        app:cardElevation="5dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

    </androidx.cardview.widget.CardView>

    <androidx.cardview.widget.CardView
        android:id="@+id/info"
        android:layout_width="40dp"
        android:layout_height="40dp"
        app:cardCornerRadius="100dp"
        app:layout_constraintBottom_toBottomOf="@id/dati1h"
        app:layout_constraintEnd_toEndOf="@id/dati1h"
        app:layout_constraintStart_toStartOf="@id/dati1h"
        app:layout_constraintTop_toTopOf="@id/dati1h"
        android:layout_marginBottom="480dp"
        android:layout_marginStart="290dp"
        android:clickable="true"
        android:focusable="true"
        app:cardElevation="5dp">

        <androidx.appcompat.widget.AppCompatImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_info_foreground"/>
    </androidx.cardview.widget.CardView>

我真的不知道如何解决它。谢谢您的帮助!

标签: androidandroid-layoutandroid-cardview

解决方案


info在您声明CardView 之后,我看不到代码有问题,dati1h这意味着 info cardView 应该在 dati1h 上呈现。但这可能是我之前遇到过类似问题的设备特定问题(对于约束布局)。

为了解决它,我选择增加高度,这肯定会解决它。

但是由于您不想遵循这种方法,请尝试使用 Frame/Relative Layout 作为 CardView(而不是约束布局)的父级,它应该可以解决您的问题。


推荐阅读