【问题标题】:How to put an android layout's element over another one如何将一个android布局的元素放在另一个上
【发布时间】:2020-11-09 08:14:32
【问题描述】:

我有以下问题:我想将一个 CardView 放在一个 android 布局文件中的另一个之上。 所以在 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>

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

【问题讨论】:

    标签: android android-layout android-cardview


    【解决方案1】:

    制作RelativeLayout怎么样

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    
        <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"/>
    
    </RelativeLayout>
    

    【讨论】:

      【解决方案2】:

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

      为了解决这个问题,我选择增加海拔,这肯定会解决它。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-06
        • 2020-02-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多