【发布时间】:2019-04-28 22:40:39
【问题描述】:
我一直在尝试使用 ConstraintLayout 实现一个显示进度数据的栏。问题是当指南太左或太右时,我的 TextView 超出了布局范围。
我尝试将 TextView 的约束从连接到“@id/guideline”更改为“父级”,并添加 HorizontalBias,但随后 TextView 将变得不准确(稍微移动到右侧/左侧取决于黄色条的长度)
这是布局代码:
<android.support.constraint.ConstraintLayout
android:id="@+id/layoutConstraint"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:paddingLeft="16dp"
android:paddingTop="100dp"
android:paddingRight="16dp"
android:paddingBottom="16dp">
<android.support.constraint.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent=".01" />
<TextView
android:id="@+id/textProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="12dp"
android:textColor="@color/black"
android:textSize="12sp"
app:layout_constraintEnd_toEndOf="@id/guideline"
app:layout_constraintStart_toStartOf="@id/guideline"
app:layout_constraintTop_toTopOf="parent"
tools:text="current value" />
<View
android:id="@+id/layoutProgress"
android:layout_width="0dp"
android:layout_height="8dp"
android:background="@drawable/background_rounded_corner_light_grey"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/textProgress" />
<View
android:id="@+id/currentProgress"
android:layout_width="0dp"
android:layout_height="8dp"
android:background="@drawable/background_rounded_corner_yellow"
app:layout_constraintEnd_toStartOf="@id/guideline"
app:layout_constraintStart_toStartOf="@id/layoutProgress"
app:layout_constraintTop_toBottomOf="@id/textProgress" />
</android.support.constraint.ConstraintLayout>
【问题讨论】:
-
为什么要使用 ProgressBar 的视图插入?
-
在我的案例中,需要创建自定义的 UI,不仅需要添加文本,还需要添加指向黄色栏左侧的小箭头图标
-
所以您需要 TextView 与 gudeline 一起移动吗?是这样吗?
-
是的,没错,就像图片中间的那个
-
所以最后它不应该超出父母的权利吗?
标签: android android-constraintlayout