这个 android ui 元素叫什么?
What is this android ui element called?
目前,我正在尝试为我的应用程序创建一个 UI,并遇到了亚马逊 Android 应用程序的设计。我对以下内容非常感兴趣:
我现在的问题是:这个 UI 元素由什么组成?我会想到一个 Cardview 中有两个 CardView。这是我目前的做法:
<com.google.android.material.card.MaterialCardView
android:id="@+id/cvAddress"
android:layout_width="0dp"
android:layout_height="100dp"
app:strokeColor="@color/color_user_address_border"
app:strokeWidth="1dp"
app:cardCornerRadius="8dp"
app:layout_constraintEnd_toStartOf="@+id/margin_right"
app:layout_constraintStart_toStartOf="@+id/margin_left"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="50dp"
app:strokeWidth="0dp"
app:cardCornerRadius="0dp" />
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="50dp"
app:strokeWidth="0dp"
app:cardCornerRadius="0dp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
很接近,但我的边框粗了很多,看起来有点丑。
编辑:完成XML布局
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cvAddress"
android:layout_width="0dp"
android:layout_height="152dp"
android:layout_marginTop="8dp"
android:background="@drawable/rounded_background_address"
app:layout_constraintEnd_toStartOf="@+id/margin_right"
app:layout_constraintStart_toStartOf="@+id/margin_left"
app:layout_constraintTop_toBottomOf="@+id/tvUserDataAddressHeadline">
<TextView
android:id="@+id/tvAddAddress"
android:layout_width="0dp"
android:layout_height="50dp"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center_vertical"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="Add new Address"
android:textColor="@color/color_text_dark"
android:textSize="16sp"
app:drawableEndCompat="@drawable/ic_arrow_big"
app:drawableTint="@color/color_text_dark"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view2"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/color_divider"
app:layout_constraintBottom_toBottomOf="@+id/tvAddAddress"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvAddAddress" />
<TextView
android:id="@+id/tvShippingAddress"
android:layout_width="0dp"
android:layout_height="50dp"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center_vertical"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="Shipping Addresses"
android:textColor="@color/color_text_dark"
android:textSize="16sp"
app:drawableEndCompat="@drawable/ic_arrow_big"
app:drawableTint="@color/color_text_dark"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvAddAddress" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/color_divider"
app:layout_constraintBottom_toBottomOf="@+id/tvShippingAddress"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvShippingAddress" />
<TextView
android:id="@+id/tvBillingAddress"
android:layout_width="0dp"
android:layout_height="50dp"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center_vertical"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="Billing Addresses"
android:textColor="@color/color_text_dark"
android:textSize="16sp"
app:drawableEndCompat="@drawable/ic_arrow_big"
app:drawableTint="@color/color_text_dark"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvShippingAddress" />
</androidx.constraintlayout.widget.ConstraintLayout>
图片
点击第一项
点击第二个项目
单击第三项
你的边框“粗得多”,因为我认为你在那里有两个卡片视图。
我会不会将内部项目设为 Cardview。您可以使用带有 CardView 或任何 ViewGroup 的圆形外部边框和带有圆角的背景。
are/could/should 中的项目是普通的 TextViews,其“可绘制端”设置为公开 triangle/arrow/caret(随便你说)。
您可以使每个项目成为一个 ConstraintLayout 并具有两个单独的小部件(一个 TextView 和一个 Image View)以进行更精细的控制。
更新
根据你的最终设计,我做了一些修改。
编辑器中的效果如下:
不使用不需要CardView
的关键是给替换布局(ConstraintLayout)一个背景圆角。
为此,创建一个 Drawable(在 res/drawable 文件夹中),我将此示例称为“rounded_background.xml
”。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke android:width="1dp" android:color="@android:color/darker_gray" />
<corners
android:bottomLeftRadius="5dp"
android:bottomRightRadius="5dp"
android:topLeftRadius="5dp"
android:topRightRadius="5dp" />
</shape>
随意调整。
然后,我将您的布局修改得更“扁平”一些。
因为您希望每个单独的项目都可以点击并拥有自己的“波纹边界”您可以将 Text/Images 包装在它们自己的 ConstraintLayout 中。
因此版本 1 看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@drawable/rounded_background">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayoutGroupAndRippleEffectOne"
android:layout_width="0dp"
android:layout_height="50dp"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="Meine Bestellungen"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginEnd="16dp"
android:contentDescription="@null"
android:src="@android:drawable/ic_input_add"
app:layout_constraintBottom_toBottomOf="@+id/textView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/textView"
app:tint="@android:color/darker_gray" />
</androidx.constraintlayout.widget.ConstraintLayout>
<View
android:id="@+id/vBorderOne"
android:layout_width="0dp"
android:layout_height="1dp"
android:background="@android:color/darker_gray"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/constraintLayoutGroupAndRippleEffectOne" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayoutGroupAndRippleEffectTwo"
android:layout_width="0dp"
android:layout_height="50dp"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/vBorderOne">
<TextView
android:id="@+id/textViewTwo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="Spar-Abo-Artikel"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginEnd="16dp"
android:contentDescription="@null"
android:src="@android:drawable/ic_input_add"
app:layout_constraintBottom_toBottomOf="@+id/textViewTwo"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/textViewTwo"
app:tint="@android:color/darker_gray" />
</androidx.constraintlayout.widget.ConstraintLayout>
<View
android:id="@+id/vBorderTwo"
android:layout_width="0dp"
android:layout_height="1dp"
android:background="@android:color/darker_gray"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/constraintLayoutGroupAndRippleEffectTwo" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayoutGroupAndRippleEffectThree"
android:layout_width="0dp"
android:layout_height="50dp"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/vBorderTwo">
<TextView
android:id="@+id/textViewThree"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="Adressen"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginEnd="16dp"
android:contentDescription="@null"
android:src="@android:drawable/ic_input_add"
app:layout_constraintBottom_toBottomOf="@+id/textViewThree"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/textViewThree"
app:tint="@android:color/darker_gray" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
(注意:我用“android”中的 colors/icons 替换了您所有的本地内容。
这里的层级是:
CL
CL1
TV + IV
DIVIDER
CL2
TV + IV
DIVIDER
CL3
TV + IV
CL
如果您不需要修改 ImageView(或为与实际文本视图不同的实际图像视图提供特殊点击...您可以进一步将其扁平化为类似
的内容
CL
TV1
DIVIDER
TV2
DIVIDER
TV3
CL
更像是:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@drawable/rounded_background">
<TextView
android:id="@+id/textViewOne"
android:foreground="?attr/selectableItemBackground"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="Meine Bestellungen"
android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:drawableTint="@android:color/darker_gray"
app:drawableEndCompat="@android:drawable/ic_input_add" />
<View
android:id="@+id/vBorderOne"
android:layout_width="0dp"
android:layout_height="1dp"
android:background="@android:color/darker_gray"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/textViewOne" />
<TextView
android:id="@+id/textViewTwo"
android:foreground="?attr/selectableItemBackground"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="Spar-Abo-Artikel"
android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/vBorderOne"
app:drawableTint="@android:color/darker_gray"
app:drawableEndCompat="@android:drawable/ic_input_add" />
<View
android:id="@+id/vBorderTwo"
android:layout_width="0dp"
android:layout_height="1dp"
android:background="@android:color/darker_gray"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/textViewTwo" />
<TextView
android:id="@+id/textViewThree"
android:foreground="?attr/selectableItemBackground"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="Adressen"
android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/vBorderTwo"
app:drawableTint="@android:color/darker_gray"
app:drawableEndCompat="@android:drawable/ic_input_add" />
</androidx.constraintlayout.widget.ConstraintLayout>
看起来像:
我没玩margins/paddings/etc。但你明白了。
从只有一堆平面视图的意义上说,这是“更好”的。
老实说,TextView 图像 (drawableEnd/Start/Top/Bottom) 的可定制性比常规 ImageView 差很多,但如果您只需要一个图标,它可以为您工作。
希望对您有所帮助。
目前,我正在尝试为我的应用程序创建一个 UI,并遇到了亚马逊 Android 应用程序的设计。我对以下内容非常感兴趣:
我现在的问题是:这个 UI 元素由什么组成?我会想到一个 Cardview 中有两个 CardView。这是我目前的做法:
<com.google.android.material.card.MaterialCardView
android:id="@+id/cvAddress"
android:layout_width="0dp"
android:layout_height="100dp"
app:strokeColor="@color/color_user_address_border"
app:strokeWidth="1dp"
app:cardCornerRadius="8dp"
app:layout_constraintEnd_toStartOf="@+id/margin_right"
app:layout_constraintStart_toStartOf="@+id/margin_left"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="50dp"
app:strokeWidth="0dp"
app:cardCornerRadius="0dp" />
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="50dp"
app:strokeWidth="0dp"
app:cardCornerRadius="0dp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
很接近,但我的边框粗了很多,看起来有点丑。
编辑:完成XML布局
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cvAddress"
android:layout_width="0dp"
android:layout_height="152dp"
android:layout_marginTop="8dp"
android:background="@drawable/rounded_background_address"
app:layout_constraintEnd_toStartOf="@+id/margin_right"
app:layout_constraintStart_toStartOf="@+id/margin_left"
app:layout_constraintTop_toBottomOf="@+id/tvUserDataAddressHeadline">
<TextView
android:id="@+id/tvAddAddress"
android:layout_width="0dp"
android:layout_height="50dp"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center_vertical"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="Add new Address"
android:textColor="@color/color_text_dark"
android:textSize="16sp"
app:drawableEndCompat="@drawable/ic_arrow_big"
app:drawableTint="@color/color_text_dark"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view2"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/color_divider"
app:layout_constraintBottom_toBottomOf="@+id/tvAddAddress"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvAddAddress" />
<TextView
android:id="@+id/tvShippingAddress"
android:layout_width="0dp"
android:layout_height="50dp"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center_vertical"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="Shipping Addresses"
android:textColor="@color/color_text_dark"
android:textSize="16sp"
app:drawableEndCompat="@drawable/ic_arrow_big"
app:drawableTint="@color/color_text_dark"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvAddAddress" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/color_divider"
app:layout_constraintBottom_toBottomOf="@+id/tvShippingAddress"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvShippingAddress" />
<TextView
android:id="@+id/tvBillingAddress"
android:layout_width="0dp"
android:layout_height="50dp"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center_vertical"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="Billing Addresses"
android:textColor="@color/color_text_dark"
android:textSize="16sp"
app:drawableEndCompat="@drawable/ic_arrow_big"
app:drawableTint="@color/color_text_dark"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvShippingAddress" />
</androidx.constraintlayout.widget.ConstraintLayout>
图片
点击第一项
点击第二个项目
单击第三项
你的边框“粗得多”,因为我认为你在那里有两个卡片视图。
我会不会将内部项目设为 Cardview。您可以使用带有 CardView 或任何 ViewGroup 的圆形外部边框和带有圆角的背景。
are/could/should 中的项目是普通的 TextViews,其“可绘制端”设置为公开 triangle/arrow/caret(随便你说)。
您可以使每个项目成为一个 ConstraintLayout 并具有两个单独的小部件(一个 TextView 和一个 Image View)以进行更精细的控制。
更新
根据你的最终设计,我做了一些修改。
编辑器中的效果如下:
不使用不需要CardView
的关键是给替换布局(ConstraintLayout)一个背景圆角。
为此,创建一个 Drawable(在 res/drawable 文件夹中),我将此示例称为“rounded_background.xml
”。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke android:width="1dp" android:color="@android:color/darker_gray" />
<corners
android:bottomLeftRadius="5dp"
android:bottomRightRadius="5dp"
android:topLeftRadius="5dp"
android:topRightRadius="5dp" />
</shape>
随意调整。
然后,我将您的布局修改得更“扁平”一些。
因为您希望每个单独的项目都可以点击并拥有自己的“波纹边界”您可以将 Text/Images 包装在它们自己的 ConstraintLayout 中。
因此版本 1 看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@drawable/rounded_background">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayoutGroupAndRippleEffectOne"
android:layout_width="0dp"
android:layout_height="50dp"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="Meine Bestellungen"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginEnd="16dp"
android:contentDescription="@null"
android:src="@android:drawable/ic_input_add"
app:layout_constraintBottom_toBottomOf="@+id/textView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/textView"
app:tint="@android:color/darker_gray" />
</androidx.constraintlayout.widget.ConstraintLayout>
<View
android:id="@+id/vBorderOne"
android:layout_width="0dp"
android:layout_height="1dp"
android:background="@android:color/darker_gray"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/constraintLayoutGroupAndRippleEffectOne" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayoutGroupAndRippleEffectTwo"
android:layout_width="0dp"
android:layout_height="50dp"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/vBorderOne">
<TextView
android:id="@+id/textViewTwo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="Spar-Abo-Artikel"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginEnd="16dp"
android:contentDescription="@null"
android:src="@android:drawable/ic_input_add"
app:layout_constraintBottom_toBottomOf="@+id/textViewTwo"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/textViewTwo"
app:tint="@android:color/darker_gray" />
</androidx.constraintlayout.widget.ConstraintLayout>
<View
android:id="@+id/vBorderTwo"
android:layout_width="0dp"
android:layout_height="1dp"
android:background="@android:color/darker_gray"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/constraintLayoutGroupAndRippleEffectTwo" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayoutGroupAndRippleEffectThree"
android:layout_width="0dp"
android:layout_height="50dp"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/vBorderTwo">
<TextView
android:id="@+id/textViewThree"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="Adressen"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginEnd="16dp"
android:contentDescription="@null"
android:src="@android:drawable/ic_input_add"
app:layout_constraintBottom_toBottomOf="@+id/textViewThree"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/textViewThree"
app:tint="@android:color/darker_gray" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
(注意:我用“android”中的 colors/icons 替换了您所有的本地内容。
这里的层级是:
CL
CL1
TV + IV
DIVIDER
CL2
TV + IV
DIVIDER
CL3
TV + IV
CL
如果您不需要修改 ImageView(或为与实际文本视图不同的实际图像视图提供特殊点击...您可以进一步将其扁平化为类似
的内容CL
TV1
DIVIDER
TV2
DIVIDER
TV3
CL
更像是:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@drawable/rounded_background">
<TextView
android:id="@+id/textViewOne"
android:foreground="?attr/selectableItemBackground"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="Meine Bestellungen"
android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:drawableTint="@android:color/darker_gray"
app:drawableEndCompat="@android:drawable/ic_input_add" />
<View
android:id="@+id/vBorderOne"
android:layout_width="0dp"
android:layout_height="1dp"
android:background="@android:color/darker_gray"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/textViewOne" />
<TextView
android:id="@+id/textViewTwo"
android:foreground="?attr/selectableItemBackground"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="Spar-Abo-Artikel"
android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/vBorderOne"
app:drawableTint="@android:color/darker_gray"
app:drawableEndCompat="@android:drawable/ic_input_add" />
<View
android:id="@+id/vBorderTwo"
android:layout_width="0dp"
android:layout_height="1dp"
android:background="@android:color/darker_gray"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/textViewTwo" />
<TextView
android:id="@+id/textViewThree"
android:foreground="?attr/selectableItemBackground"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="Adressen"
android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/vBorderTwo"
app:drawableTint="@android:color/darker_gray"
app:drawableEndCompat="@android:drawable/ic_input_add" />
</androidx.constraintlayout.widget.ConstraintLayout>
看起来像:
我没玩margins/paddings/etc。但你明白了。
从只有一堆平面视图的意义上说,这是“更好”的。
老实说,TextView 图像 (drawableEnd/Start/Top/Bottom) 的可定制性比常规 ImageView 差很多,但如果您只需要一个图标,它可以为您工作。
希望对您有所帮助。