sai*_*jab 2 android android-constraintlayout
我在约束布局 A (textview)、B(textview) 和 C (imageview) 中有三个视图。B 有动态文本,因此我希望它尽可能增长,但不接触 C。它可以有多行,但我不想固定它的宽度,也不应该使 C 离开屏幕。我如何将约束布局用于此类布局。这就是我想要实现的https://i.stack.imgur.com/EIbnz.png如果文本较多,请将其设为多行。这就是我得到的https://i.stack.imgur.com/VG7Z5.png 。如果文本很长,最后一个图像视图将被推出屏幕。
<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/button_background_rounded_gray"
android:id="@+id/container"
android:layout_width="wrap_content"
android:layout_height="30dp">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/docIcon"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:textAllCaps="true"
android:gravity="center"
android:text="PDF"
android:textColor="@color/tcWhite"
android:background="@drawable/button_background_rounded_red"
android:layout_marginStart="10dp"
android:textSize="7sp"
android:layout_width="20dp"
android:layout_height="20dp"/>
<androidx.appcompat.widget.AppCompatTextView
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:textSize="12sp"
android:id="@+id/docName"
tools:text="Accommodation Voucher - Circus at Disneyland Paris - Demo - 11 Oct.pdf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
app:layout_constraintStart_toEndOf="@+id/docIcon"
android:layout_gravity="center_vertical"/>
<androidx.appcompat.widget.AppCompatImageView
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:id="@+id/docStatus"
app:srcCompat="@drawable/ic_picture_as_pdf_red_24dp"
android:layout_marginEnd="10dp"
android:layout_width="20dp"
android:layout_height="20dp"
app:layout_constraintStart_toEndOf="@+id/docName"/>
Run Code Online (Sandbox Code Playgroud)
您没有显示ConstraintLayout您发布的整体宽度是如何确定的。对于这个答案,我使用了match_parent但另一个约束也将起作用。
允许文本扩展到约束但仍然遵守约束的关键是app:layout_constrainedWidth="true"在TextView. 我还将这三个视图放入水平链中。请参阅ConstraintLayout 开发人员指南。
\n\n\nWRAP_CONTENT :强制约束(在 1.1 中添加)
\n\n
如果将维度设置为 WRAP_CONTENT,则在 1.1 之前的版本中,它们将被视为文字维度 - 这意味着约束不会限制结果维度。虽然一般来说这已经足够了(而且速度更快),但在某些情况下,您可能想要使用 WRAP_CONTENT,但仍要继续强制执行约束来限制结果维度。在这种情况下,您可以添加相应的属性之一:Run Code Online (Sandbox Code Playgroud)\napp:layout_constrainedWidth=\xe2\x80\x9dtrue|false\xe2\x80\x9d\n app:layout_constrainedHeight=\xe2\x80\x9dtrue|false\xe2\x80\x9d\n
Activity_main.xml \n
\n\n <androidx.appcompat.widget.AppCompatTextView\n android:id="@+id/docIcon"\n android:layout_width="20dp"\n android:layout_height="20dp"\n android:layout_marginStart="10dp"\n android:background="@drawable/ic_launcher_background"\n android:gravity="center"\n android:text="PDF"\n android:textColor="@android:color/white"\n android:textSize="7sp"\n app:layout_constraintBottom_toBottomOf="parent"\n app:layout_constraintEnd_toStartOf="@+id/docName"\n app:layout_constraintStart_toStartOf="parent"\n app:layout_constraintTop_toTopOf="parent"\n app:textAllCaps="true" />\n\n <androidx.appcompat.widget.AppCompatTextView\n android:id="@+id/docName"\n android:layout_width="wrap_content"\n android:layout_height="wrap_content"\n android:layout_marginStart="8dp"\n android:text="This is a very long name. This is a very long name. This is a very long name. "\n android:textSize="12sp"\n app:layout_constrainedWidth="true"\n app:layout_constraintBottom_toBottomOf="parent"\n app:layout_constraintEnd_toStartOf="@+id/docStatus"\n app:layout_constraintStart_toEndOf="@+id/docIcon"\n app:layout_constraintTop_toTopOf="parent" />\n <androidx.appcompat.widget.AppCompatImageView\n android:id="@+id/docStatus"\n android:layout_width="20dp"\n android:layout_height="20dp"\n android:layout_marginEnd="10dp"\n app:layout_constraintBottom_toBottomOf="parent"\n app:layout_constraintEnd_toEndOf="parent"\n app:layout_constraintStart_toEndOf="@+id/docName"\n app:layout_constraintTop_toTopOf="parent"\n app:srcCompat="@drawable/ic_launcher_foreground" />\n</androidx.constraintlayout.widget.ConstraintLayout>\nRun Code Online (Sandbox Code Playgroud)\n\n这是一个更简单的演示。
\n\n\n\n活动主文件
\n\n<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"\n xmlns:app="http://schemas.android.com/apk/res-auto"\n xmlns:tools="http://schemas.android.com/tools"\n android:layout_width="400dp"\n android:layout_height="wrap_content"\n android:background="@android:color/darker_gray">\n\n\n <Button\n android:id="@+id/button"\n android:layout_width="wrap_content"\n android:layout_height="wrap_content"\n android:layout_marginBottom="8dp"\n android:text="Button"\n app:layout_constraintBottom_toBottomOf="parent"\n app:layout_constraintStart_toStartOf="parent"\n app:layout_constraintTop_toTopOf="parent" />\n\n <EditText\n android:id="@+id/textView"\n android:layout_width="wrap_content"\n android:layout_height="wrap_content"\n android:text="Type here..."\n app:layout_constrainedWidth="true"\n app:layout_constraintEnd_toStartOf="@+id/imageView"\n app:layout_constraintHorizontal_bias="0.0"\n app:layout_constraintStart_toEndOf="@+id/button"\n app:layout_constraintTop_toTopOf="parent" />\n\n <ImageView\n android:id="@+id/imageView"\n android:layout_width="wrap_content"\n android:layout_height="wrap_content"\n app:layout_constraintBottom_toBottomOf="parent"\n app:layout_constraintEnd_toEndOf="parent"\n app:layout_constraintTop_toTopOf="parent"\n app:srcCompat="@mipmap/ic_launcher" />\n</androidx.constraintlayout.widget.ConstraintLayout>\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1194 次 |
| 最近记录: |