如何让 circleimageview 保持在 CardView 之前?在约束布局?
How can I keep circleimageview ahead of a CardView? in ConstraintLayout?
我想以 CircleImageView 领先于 CardView 的方式显示输出
但是我的输出是这样的
这是我的单行 XML,我想将其与 RecylerView
一起使用
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/backgroundColor">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/circleImageView"
android:layout_width="90dp"
android:layout_height="90dp"
android:src="@drawable/cat_placeholder"
app:civ_border_color="@color/red"
app:civ_border_width="2dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.cardview.widget.CardView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="32dp"
app:cardElevation="50dp"
app:layout_constraintBottom_toBottomOf="@+id/circleImageView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/circleImageView"
app:layout_constraintTop_toTopOf="@+id/circleImageView" />
</androidx.constraintlayout.widget.ConstraintLayout>
将 android:elevation="55dp"
添加到您的 imageView
考虑将 CardView
和 CircleImageView
包装在 FrameLayout
中。此外,以您希望它们出现的方式为两个视图设置 android:elevation
属性。
<FrameLayout
android:id="@+id/some_container"
android:layout_width="..."
android:layout_height="..."
... >
<CardView
android:id:"@+id/card"
android:layout_width="..."
android:layout_height="..."
android:elevation="..."
...
... />
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/circleImageView"
android:layout_width="90dp"
android:layout_height="90dp"
android:src="@drawable/cat_placeholder"
android:elevation="..."
...
... />
</FrameLayout>
不要忘记查看 FrameLayout documentation 以了解如何最好地使用它。 (另外,请记住 CardView
本身就是 FrameLayout
。)
此外,我建议您关注项目的 minSdkVersion
。 elevation
属性 在 API 21+ 中可用。您的应用不会在较低 API 设备上崩溃,但您可能无法获得所需的外观。强烈考虑使用 FrameLayout 实现重叠,或尝试设计自定义视图或使用某些库,例如用于模拟高程的阴影。
我想以 CircleImageView 领先于 CardView 的方式显示输出
但是我的输出是这样的
这是我的单行 XML,我想将其与 RecylerView
一起使用<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/backgroundColor">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/circleImageView"
android:layout_width="90dp"
android:layout_height="90dp"
android:src="@drawable/cat_placeholder"
app:civ_border_color="@color/red"
app:civ_border_width="2dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.cardview.widget.CardView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="32dp"
app:cardElevation="50dp"
app:layout_constraintBottom_toBottomOf="@+id/circleImageView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/circleImageView"
app:layout_constraintTop_toTopOf="@+id/circleImageView" />
</androidx.constraintlayout.widget.ConstraintLayout>
将 android:elevation="55dp"
添加到您的 imageView
考虑将 CardView
和 CircleImageView
包装在 FrameLayout
中。此外,以您希望它们出现的方式为两个视图设置 android:elevation
属性。
<FrameLayout
android:id="@+id/some_container"
android:layout_width="..."
android:layout_height="..."
... >
<CardView
android:id:"@+id/card"
android:layout_width="..."
android:layout_height="..."
android:elevation="..."
...
... />
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/circleImageView"
android:layout_width="90dp"
android:layout_height="90dp"
android:src="@drawable/cat_placeholder"
android:elevation="..."
...
... />
</FrameLayout>
不要忘记查看 FrameLayout documentation 以了解如何最好地使用它。 (另外,请记住 CardView
本身就是 FrameLayout
。)
此外,我建议您关注项目的 minSdkVersion
。 elevation
属性 在 API 21+ 中可用。您的应用不会在较低 API 设备上崩溃,但您可能无法获得所需的外观。强烈考虑使用 FrameLayout 实现重叠,或尝试设计自定义视图或使用某些库,例如用于模拟高程的阴影。