我花了几个小时试图解决这个问题,也许我错过了一些明显的东西......
我正在尝试将三个TextView并排放置。我希望所有这些都同样大,无论它们包含什么文本,如果文本不适合其中一个,那么文本应该在特定文本视图的末尾用“...”替换(带有ellipsize的帮助。)
| <> 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>
答案 0 :(得分:0)
当我删除android:editable="true"
部分时,它对我有用。
如果您希望将其作为用户可编辑字段,请改用EditText
。那个(afaik)虽然不支持ellipsize。