android - Android 布局:如何根据周围的文本视图来省略文本视图?
问题描述
我需要您的帮助来设计一个符合以下几个要求的布局:
要求:
文字A(绿色):
- 总是在那里。
- 长度可能不同(1 到 50 个字符)。
- 是唯一一个当内容对于空间来说太长时必须被省略的。
文字B(黄色):
- 可以为空。(宽度:0dp)
- 长度可能不同(0 到 10 个字符)。
- 如果不为空,则必须完全可见(不是椭圆/截断)
- 必须贴在 TextA 的右侧。
文本C(红色):
- 总是在那里。
- 具有固定宽度(即:100dp)。
- 始终坚持在父母的权利。
注意:TextA、TextB和TextC是 TextViews。
我的问题与此问题类似,但有 3 个部分而不是 2 个部分,并且要求略有不同。
任何人都知道如何实现这一目标?
谢谢
解决方案
您无法在 xml 中实现 100%,因为您需要有条件地将 TextB 上的可见性设置为 View.GONE。但是,使用 ConstraintLayout 您可以完成其余的行为,如下所示: 布局预览
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/TextA"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:text="TextAaekfnvauefoviqwejnoiwjeofijnweoimivejmgpiwvmpgr"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@color/green"
app:layout_constraintEnd_toStartOf="@+id/TextC"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/TextC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:text="TextC"
android:textColor="@color/red"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/TextB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:text="TextB"
android:textColor="@color/yellow"
app:layout_constraintEnd_toStartOf="@+id/TextC"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toEndOf="@+id/TextA"
app:layout_constraintTop_toTopOf="parent" />
推荐阅读
- r - 一个闪亮的应用程序,将数字附加到一维向量
- python - 二维数组的 Numpy 删除
- javascript - 杂耍错误:(未捕获的类型错误:无法读取未定义的属性“样式”)
- r - 将多 x 轴 ggplot2 或自定义标签添加到堆栈条图
- c++ - 注入的类名可以用作友元声明中的类型名吗?
- powershell - 获取 AD 中所有客户端的 MAC 地址
- autodesk-forge - 通过无头查看器加载模型
- javascript - 谁能解释这些功能在做什么
- javascript - Typeform 错误:对 https://admin.typeform.com/app/embed/ID?jsoncallback=? 的 JSONP 请求 失败的
- android - 如何在 Android Studio 中只读取字符串的特定部分?