我想找一行文字,大概是
福福福-巴巴拉
但如果不能放在一条线上,我希望它是椭圆形的。
也就是说,我想把它们缩短。

<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>

请容忍我,这部分有效。
TextViewlayout_width设置为0dip并且layout_weight设置为1意味着它们将分别占用50%的可用空间。
singleLine设置为trueellipsize设置为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>

07-28 12:41