我已经花了几个小时试图解决这个问题,也许我错过了一些明显的东西......
我试图让三个 TextView 并排放置。我希望它们都一样大,无论它们包含什么文本,如果文本不适合其中一个,则文本应在该特定文本视图的末尾替换为“...”(使用椭圆的帮助)。
| <>TextView>> <>TextView>> <>TextView> |
正如我所说,我需要它们在任何时候都同样大。这可以通过使用权重的 LinearLayout “轻松”完成,但是 ellipsize 将不起作用(或者至少我不会让它工作),因为看起来你需要一个绝对宽度大小才能让它工作。
我一直在尝试使用 LinearLayouts、RelativeLayouts、TableLayouts,最后我结合了 xml 布局和编程方法(这似乎比它需要的要先进得多,但这是我能够成为的唯一方法关闭)。但是,现在我使用绝对宽度(以编程方式设置),但虽然我将它与适当的密度乘数相乘,但它在不同的屏幕上看起来会有所不同。在 4.3 英寸的屏幕上会有一些我可以使用的空间,另一方面,在 2.7 英寸的屏幕上看起来相当不错。
那么有什么想法可以通过布局来实现吗?我也一直在论坛上环顾四周,问题是大多数人只希望一个 textview 具有 ellipsize 功能,而不是全部...
下面你会发现我第一次尝试让它工作,但因为我认为需要一个绝对宽度才能让 ellipsize 工作,所以它不会工作。例如,将宽度设置为“1dp”也不会真正起到作用。
任何建议将不胜感激!
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="10dip"
>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:editable="true"
android:ellipsize="end"
android:singleLine="true"
>
</TextView>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:editable="true"
android:singleLine="true"
android:ellipsize="end"
>
</TextView>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:editable="true"
android:ellipsize="end"
android:singleLine="true"
>
</TextView>
</LinearLayout>