我一直试图获得某种布局,但我的所有尝试都失败了。
我在有限的空间内有2个textviews。只要有空间展示两者,我希望他们一个接一个地展示:
| T1 T2222 |
| T111111 T2222 |
但是当空间不足时,我只希望第一个被椭化或以其他方式切割,例如:
| T1111111... T2222 |
它们可能有所帮助 - 或者不是 - 两者都应该有1行。
第二个宽度可以修复也许有用 - 或者不是。
我已经在Two TextViews side by side, only one to ellipsize?尝试了这些想法,但是这种情况与我的有所不同,因为他们的T2意味着锚定在右边,而我希望T2只跟随T1。
我已经尝试为T2指定一个minWidth,但它似乎没有被尊重;普通宽度,但我似乎无法控制T1的行为。
我已经涉足了重量,但没有找到能解决问题的方法。但这可能是我的经验不足。
我可以为T1指定一个maxWidth,并且很荣幸它可能会按照我的意愿行事,但问题是有限空间的整个宽度未指定。
此时我开始认为没有办法去做 - 除非以编程方式,这是我想避免的路线。
感谢您提出任何建议。
答案 0 :(得分:6)
连接两个字符串并将结果放入TextView
ellipsize="middle"
设置工作的单个| T1 T2222 |
| T111111 T2222 |
| T1111111... T2222 |
中?
或者布局,第二个textview是否与右边对齐?
RelativeLayout
<强>更新强>
利用第二个文本视图宽度可以修复的功能,下面的<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:gravity="fill">
<TextView android:id="@+id/secondText"
android:layout_width="60dp" android:layout_height="wrap_content"
android:singleLine="true" android:layout_alignParentRight="true" />
<TextView android:id="@+id/dynamicText"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_marginRight="5dp" android:layout_toLeftOf="@id/secondText"
android:singleLine="true" android:ellipsize="end" />
</RelativeLayout>
可以使用所需的布局(通过将第二个视图的宽度显式设置为60dp):
| T1 T2222 |
| T111111 T2222 |
| T1111111... T2222 |
上面的代码生成以下布局:
TextViews
两个{{1}}之间的宽度为5dp。