我需要一些关于Android布局的帮助。我有以下代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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">
<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="0.5" />
<android.support.constraint.Guideline
android:id="@+id/guideline2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.725" />
<TextView
android:id="@+id/data_field_1_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dip"
android:layout_marginTop="10dip"
app:layout_constraintLeft_toLeftOf="@id/guideline"
app:layout_constraintRight_toLeftOf="@id/guideline2"
app:layout_constraintTop_toTopOf="parent"
tools:text="ACTIVE" />
<TextView
android:id="@+id/data_field_1_value"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="15dip"
android:layout_toEndOf="@id/data_field_1_name"
app:layout_constraintBaseline_toBaselineOf="@id/data_field_1_name"
app:layout_constraintLeft_toLeftOf="@id/guideline2"
app:layout_constraintRight_toRightOf="parent"
tools:text="1750" />
<TextView
android:id="@+id/data_field_2_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dip"
android:layout_marginTop="8dip"
app:layout_constraintLeft_toLeftOf="@id/guideline"
app:layout_constraintRight_toLeftOf="@id/guideline2"
app:layout_constraintTop_toBottomOf="@id/data_field_1_name"
tools:text="ACTIVE" />
<TextView
android:id="@+id/data_field_2_value"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="15dip"
android:layout_toEndOf="@id/data_field_2_name"
app:layout_constraintBaseline_toBaselineOf="@id/data_field_2_name"
app:layout_constraintLeft_toLeftOf="@id/guideline2"
app:layout_constraintRight_toRightOf="parent"
tools:text="1750" />
<TextView
android:id="@+id/data_field_3_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dip"
android:layout_marginTop="8dip"
app:layout_constraintLeft_toLeftOf="@id/guideline"
app:layout_constraintRight_toLeftOf="@id/guideline2"
app:layout_constraintTop_toBottomOf="@id/data_field_2_name"
tools:text="ACTIVE" />
<TextView
android:id="@+id/data_field_3_value"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="15dip"
android:layout_toEndOf="@id/data_field_3_name"
app:layout_constraintBaseline_toBaselineOf="@id/data_field_3_name"
app:layout_constraintLeft_toLeftOf="@id/guideline2"
app:layout_constraintRight_toRightOf="parent"
tools:text="1750" />
<TextView
android:id="@+id/value"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="15dip"
android:layout_marginStart="15dip"
android:textSize="25sp"
app:layout_constraintBaseline_toBaselineOf="@id/data_field_2_name"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
tools:text="17.40" />
<ImageView
android:id="@+id/flag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="0dp"
android:layout_marginTop="2dp"
android:src="@drawable/ic_launcher_background"
app:layout_constraintEnd_toEndOf="@+id/unit"
app:layout_constraintStart_toStartOf="@+id/unit"
app:layout_constraintTop_toTopOf="parent" />
<android.support.v7.widget.AppCompatTextView
android:id="@+id/unit"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:gravity="center_horizontal"
app:layout_constraintBaseline_toBaselineOf="@id/value"
app:layout_constraintStart_toEndOf="@+id/value"
tools:text="KG" />
<TextView
android:id="@+id/label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="15dip"
app:layout_constraintBaseline_toBaselineOf="@id/data_field_3_name"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/guideline"
tools:text="TOTAL" />
</android.support.constraint.ConstraintLayout>
输出为:
我的问题是:如果主值(17.40)太大,则该值应“省略”以结束,但它会覆盖“活动”文本。
大文本的输入为:
我需要像这样的东西大价值:
PS:单位和标志应始终显示在主值的末尾。
你能帮我提些建议吗?我试了很多办法,但没有找到解决办法。
5条答案
按热度按时间lyr7nygr1#
1.将子布局宽度设置为
0dp
安卓系统:布局宽度=“0 dp”
Set Right_toRightOf
和Left_toRightOf
**应用程序:layout_constraintLeft_to RightOf ="@+id/列表图像视图”****应用程序:layout_constraintRight_to RightOf =“父级”**应用程序:layout_constraintTop_to TopOf =“父级”
zqry0prt2#
首先,您需要将
android:ellipsize="end"
和android:maxLines="1"
添加到TextViewandroid:id="@+id/value"
中。然后,您需要将 value 和 unit 添加到水平链中。将链的开始连接到父级开始,将链的结束连接到准则android:id="@+id/guideline"
的开始/结束。之后,value 和 unit 将具有相同的宽度,并填充父开始和基准线
android:id="@+id/guideline"
之间的整个空间。要使宽度不同,您可以将android:layout_width="wrap_content"
设置为 unit,或者您可以将两者都设置为app:layout_constraintHorizontal_weight
代码可以是这样的:
它将如下所示:
bvjveswy3#
为了那个
1)您必须为其指定固定长度,textview宽度0dp将不起作用。
2)需要将文本视图的ellipsize属性设置为“end”。
3)沿着将maxlines属性设置为1。
测试了这个,工作正常。
你可以保持固定的宽度,因为你喜欢。
7jmck4yq4#
假设您已经将
value
TextView
设置为自身的ellipsize,您可以通过在ConstraintLayout
完成所有视图的布局后以编程方式设置TextView
的最大宽度来解决这个问题。我创建了一个小应用程序,它只是扩大了你在问题中发布的布局(尽管我不得不将旗帜更改为我拥有的图片)。我将这些属性添加到
value
视图中:这是我的Java代码:
以下是一些截图:
第一次
wgxvkvu95#
我们走吧。
请注意,请确保父
ConstraintLayout
的LayoutParam.width
不是wrap_content
。