【发布时间】:2021-12-03 00:29:50
【问题描述】:
刚开始使用 android 并面临如何设置约束的小问题。
我有一个标签,image1(button) & image2(button)。 image2 与屏幕左对齐。标签是第一个控件并右对齐,并且 image1 放置在标签旁边。 我所需要的是,如果标签的文本增长,那么 image1 应该留在它旁边,并且在屏幕结束时/之前,标签的文本应该进入第二行,这样 image1 就不会出现在屏幕之外。但是一旦文本增长,两个图像,即 image1 和 image2 就会消失在屏幕上。
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/container_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/_8sdp"
android:layout_marginEnd="@dimen/_8sdp"
android:background="@color/light_blue"
android:paddingTop="@dimen/_10sdp"
android:paddingBottom="@dimen/_10sdp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/_14sdp"
android:layout_marginEnd="@dimen/_20sdp"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/task_name_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/rubik_regular"
android:gravity="center"
android:layout_marginTop="@dimen/_4sdp"
android:textAlignment="textStart"
android:text="Use the toilet paper"
android:textColor="@color/new_app_black"
android:textSize="@dimen/_14sdp"
tools:ignore="RtlCompat"/>
<ImageView
android:id="@+id/audio_iv"
android:layout_width="@dimen/_20sdp"
android:layout_height="@dimen/_20sdp"
android:minWidth="@dimen/_20sdp"
android:layout_gravity="center"
android:layout_marginStart="@dimen/_8sdp"
android:layout_marginEnd="@dimen/_12sdp"
android:src="@drawable/ic_audio" />
<Space
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<ImageView
android:id="@+id/checked_iv"
android:minWidth="@dimen/_24sdp"
android:layout_width="@dimen/_24sdp"
android:layout_height="@dimen/_24sdp"
android:layout_gravity="center"
android:src="@drawable/ic_task_unchecked" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
【问题讨论】:
-
您可以将 2 个 ImageViews 移到线性布局之外,然后修改约束,它应该可以工作。
-
是的,正如 Miguel Manzo 所说,您可以删除线性布局并直接在约束布局内使用所有子级。使用开始和结束约束来创建一个水平链,然后它应该可以工作了!
标签: android android-constraintlayout