代码:(附图片)我正在使用 LinearLayout 和 在这种情况下,重力和重量对我不起作用。[![在此处输入图像描述][1]][1] 我想将心形图标放置在行的右端。但它显示在文本视图末尾旁边 ”
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/item_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.cardview.widget.CardView
android:id="@+id/item_card"
android:layout_width="170dp"
android:layout_height="150dp"
android:layout_marginStart="18dp"
app:cardCornerRadius="4dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/list_img"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/icon_check_circle"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_item_duration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/list_img"
android:layout_alignTop="@+id/list_img"
android:layout_margin="2dp"
android:gravity="center"
android:text="Hello"
android:textColor="@color/white" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/img_share"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignEnd="@+id/item_duration"
android:layout_gravity="end"
android:layout_margin="2dp"
android:src="@drawable/icon_share" />
</androidx.cardview.widget.CardView>
</RelativeLayout>
<LinearLayout
android:id="@+id/item_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="18dp"
android:layout_marginTop="2dp"
android:gravity="right"
android:orientation="horizontal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/item_layout">
<TextView
android:id="@+id/tv_item_desc"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:layout_weight="1"
android:ellipsize="end"
android:maxLength="16"
android:maxLines="1"
android:text="fan"
android:textSize="16sp"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginEnd="2dp"
android:src="@drawable/icon_favorite" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
”
您可以通过将线性布局的宽度设置为 0dp 来实现此目的。还需要添加
app:layout_constraintEnd_toEndOf="@id/item_layout"
您所讨论的线性布局。更新后的xml的完整代码是
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
<RelativeLayout
android:id="@+id/item_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.cardview.widget.CardView
android:id="@+id/item_card"
android:layout_width="170dp"
android:layout_height="150dp"
android:layout_marginStart="18dp"
app:cardCornerRadius="4dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/list_img"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/icon_check_circle"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_item_duration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/list_img"
android:layout_alignTop="@+id/list_img"
android:layout_margin="2dp"
android:gravity="center"
android:text="Hello"
android:textColor="@color/white"
/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/img_share"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignEnd="@+id/item_duration"
android:layout_gravity="end"
android:layout_margin="2dp"
android:src="@drawable/icon_share" />
</androidx.cardview.widget.CardView>
</RelativeLayout>
<LinearLayout
android:id="@+id/item_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="18dp"
android:layout_marginTop="2dp"
android:orientation="horizontal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="@id/item_layout"
app:layout_constraintTop_toBottomOf="@id/item_layout">
<TextView
android:id="@+id/tv_item_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:layout_weight="1"
android:ellipsize="end"
android:maxLength="16"
android:maxLines="1"
android:text="fan"
android:textSize="16sp"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginEnd="2dp"
android:src="@drawable/icon_favorite" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>