如何让ellipsize并排处理三个文本视图

时间:2012-08-14 16:42:30

标签: android textview

我花了几个小时试图解决这个问题,也许我错过了一些明显的东西......

我正在尝试将三个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>

1 个答案:

答案 0 :(得分:0)

当我删除android:editable="true"部分时,它对我有用。

如果您希望将其作为用户可编辑字段,请改用EditText。那个(afaik)虽然不支持ellipsize。