android - 2 TextViews 在约束布局中相互重叠
问题描述
我有下面cardview
的布局,其中有 3 个视图,recyclerview
即&如下ImageView
TextView
TextView
我面临一个奇怪的问题,即使在有适当的约束之后,它仍然会相互重叠两个 TextView。
问题。:状态(TextView)在最右边。并且,名称(TextView)在最左侧的图像之后开始。如果文本数据很长,则名称与状态文本重叠。
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/cv_background"
app:cardCornerRadius="@dimen/rad_base"
app:contentPadding="@dimen/s_base">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/left_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_margin="@dimen/s_base"
android:src="@drawable/ic_menu"/>
<TextView
style="@style/headline_6"
android:id="@+id/status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LIVE"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginRight="@dimen/s_base"
android:layout_marginTop="@dimen/s_base"
android:gravity="center_vertical"
android:textColor="@color/succ"/>
<TextView
style="@style/headline_6"
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/col_gray"
app:layout_constraintStart_toEndOf="@+id/left_image"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintRight_toLeftOf="@+id/status"
android:layout_marginLeft="@dimen/spacer_s"
android:layout_marginTop="@dimen/s_base"
android:text="Dummy Dummy Dummy Dummy Dummy Dummy"
android:gravity="center_vertical"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
解决方案
这是因为您对Start
-End
和Left
-的不一致、混合使用Right
。您应该合并到Start
和End
:
除此之外,您还需要为left_image
和设置更多约束status
。
<ImageView
android:id="@+id/left_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/name"
app:layout_constraintTop_toTopOf="parent"
android:layout_margin="@dimen/s_base"
android:src="@drawable/ic_menu"/>
<TextView
style="@style/headline_6"
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/col_gray"
app:layout_constraintStart_toEndOf="@+id/left_image"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@+id/status"
android:layout_marginStart="@dimen/spacer_s"
android:layout_marginTop="@dimen/s_base"
android:text="Dummy Dummy Dummy Dummy Dummy Dummy"
android:gravity="center_vertical"/>
<TextView
style="@style/headline_6"
android:id="@+id/status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LIVE"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@name"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="@dimen/s_base"
android:layout_marginTop="@dimen/s_base"
android:gravity="center_vertical"
android:textColor="@color/succ"/>
推荐阅读
- gradle - 将 JaCoCo 配置导出到二进制 gradle 插件
- sql - 如何从两个表的两个不同列中插入一列?
- cognos - 在 Cognos11 中将自定义颜色应用于条形图
- python - 如何使我的 session.get() 链接到变量?
- python - python 2.7中的子测试功能?
- java - 内部路由中的骆驼重试处理
- python - 熊猫如何将函数应用于带有参数的groupby对象
- javascript - 使用 React 的代理设置从 Featherjs 后端获取数据
- javascript - 如何遍历输入的内容
- angular - TypeError:date.getTime 在角度使用时不是函数