我想找一行文字,大概是
福福福-巴巴拉
但如果不能放在一条线上,我希望它是椭圆形的。
也就是说,我想把它们缩短。
<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
的layout_width
设置为0dip
并且layout_weight
设置为1
意味着它们将分别占用50%的可用空间。将
singleLine
设置为true
和ellipsize
设置为true
意味着它们看起来像foofoo…如果文本大于容器。因此,我的结果(如果文本更长)应该是
福福..-芭芭拉..
就是这样!所以这是可行的。
现在我试图解决的问题是,如果第一个
TextView
(id:text_1)的文本小于layout_width="0dip"
给出的50%,并且我希望它layout_weight="1"
。否则看起来像:Foo空格-芭芭拉..
我想要
Foo-巴巴拉
这就是为什么我更改了
wrap_content
并添加了layout_width="wrap_content"
但这不起作用!它似乎忽略了我说的android:maxWidth="0dip"
并且仍然给这个观点50%!我听说你需要添加
wrap_content
才能工作,但这没有影响。 最佳答案
这是我所能做的最好的,试着改变字符串看看它是否按预期工作。
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:shrinkColumns="0,2"
android:stretchColumns="0,2">
<TableRow>
<TextView android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="end"
android:text="foofoofoo"/>
<TextView android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="-"
android:gravity="center_horizontal"/>
<TextView android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="end"
android:text="barbarbarbarbarbarbarbarbarbarbarbar"/>
</TableRow>
</TableLayout>