我正在尝试获取一行文本,类似于
foofoofoo - barbarbar
但如果它不适合一行,我希望它省略 foo 和 bar。即我正在尝试缩短它们。
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:id="@+id/text_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:maxWidth="0dip"
android:layout_weight="1"
android:textColor="#ffffff"
android:singleLine="true"
android:ellipsize="true"
android:text="foofoofoofoo" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff"
android:text=" - " />
<TextView
android:id="@+id/text_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="0dip"
android:layout_weight="1"
android:textColor="#ffffff"
android:singleLine="true"
android:ellipsize="true"
android:text="barbarbarbar" />
</LinearLayout>
忍受我这部分工作。
设置TextView
's layout_width
to be0dip
和layout_weight
to be1
意味着它们将分别占用 50% 的可用空间。
设置singleLine
totrue
和ellipsize
totrue
意味着它们看起来像foofoo...如果文本大于容器。
因此我的结果(如果文本更长)应该是
foofoo.. - barbar..
它是哪一个!所以这行得通。
现在我要解决的情况是,如果第一个TextView
(id:text_1) 的文本小于给出的 50%layout_width="0dip"
并且layout_weight="1"
我想要它wrap_content
。否则它看起来像:
foo 空格 - barbar..
而且我要
foo - barbarbar
这就是为什么我已经更改layout_width="wrap_content"
并添加了android:maxWidth="0dip"
但这不起作用!它似乎无视我的说法wrap_content
,仍然给这个观点 50%!
我读到您需要添加android:adjustViewBounds="true"
formaxWidth
才能工作,但这没有影响。