【问题标题】:How to create layout like this?如何创建这样的布局?
【发布时间】:2010-02-18 19:22:17
【问题描述】:

我有一个水平的 LinearLayout,里面有 2 个 TextView。假设 LinearLayout 的宽度是 320px。如果 TextViews 不适合 LinearLayout(它们一起宽于 320px),我想以某种方式实现这一点:

  • second TextView 已完全显示,位于 LinearLayout 的右边缘
  • 第一个 TextView 仅部分显示,只有前 x 个字符可见

我的意思:

[TextView1|TextView2_________________________] // 这是正常的

[VeryVeryL...|VeryVeryLongTextView2] // VeryVeryLongTextView1 不完全可见

【问题讨论】:

    标签: android


    【解决方案1】:

    要获得您在上述 cmets 中请求的效果,您可以将 Mayra 的解决方案修改为:

    <LinearLayout ...>
    <TextView android:layout_width="wrap_content"
                android:maxWidth="20dp"
                android:layout_height="wrap_content"/>
    <TextView android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"/>
    

    我认为这会奏效。奇怪的是,maxWidth 参数只出现在几个视图类中,但幸运的是 TextView 是其中之一。你会认为它在更多情况下会有用,所以我不确定为什么它不仅仅在默认视图参数中可用。

    【讨论】:

      【解决方案2】:

      为您的第一个 textView 指定特定宽度(即 20dp...注意,使用 dp 比使用硬编码像素更好,以处理设备的多种分辨率),为您的第二个 TextView 赋予 1 的权重。这告诉它占用剩余空间。例如:

      <LinearLayout ...>
          <TextView android:layout_width="20dp"
                      android:layout_height="wrap_content"/>
          <TextView android:layout_width="0dp"
                      android:layout_height="wrap_content"
                      android:layout_weight="1"/>
      </LinearLayout>
      

      【讨论】:

      • 如果你想让 textView1 的文本中的 3 个点显示它是一个长文本,你可以添加 android:ellipsize="end"
      • 谢谢,但如果第一个 TextView 非常小,我需要第二个紧挨着它 - 我想要 [T1|TextView2___] 而不是 [T1___|TextView2__]。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 1970-01-01
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多