1

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

我试图让三个 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>
4

1 回答 1

0

当我卸下android:editable="true"零件时,它对我有用。

如果您希望它成为用户可编辑的字段,请EditText改用。那个(afaik)虽然不支持椭圆形。

于 2012-08-14T17:15:10.660 回答