如何将视图放在TextView的右侧

时间:2014-11-05 21:33:21

标签: android view

我想在其旁边放置一个TextView和另一个View。像这样:

|                             |
|[TextView][View]             |
|                             |

TextView可能包含长文字。在这种情况下,我想使用省略号,因此View不会被推出屏幕(或任何布局包含它们),也不会变形。

|                             |
|[TextView with long...][View]|
|                             |

所以我希望View位于TextView的旁边,而TextView需要尽可能多的空间(并且不超过需要),而不会将View推出文本太长时屏幕/容器的大小(在这种情况下,我想用省略号剪切文本)。

我怎么能这样做?

我在考虑计算视图的位置和大小,但看起来有点复杂。也许有一些更简单的解决方案。

谢谢!

5 个答案:

答案 0 :(得分:2)

您可以使用宽度为LinearLayout的水平math_parent,其中包含两个孩子。左侧TextView的宽度为0dpweight为1,视图的宽度为wrap_content。对于最后的点,您可以使用android:ellipsize

答案 1 :(得分:2)

您可以使用水平方向为Linear {3}}建议的LinearLayout,但将其宽度设置为wrap_content

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:ellipsize="end"
        android:text="unknown sized view" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="fixed sized view"/>
</LinearLayout>

答案 2 :(得分:0)

在TextView和View的父布局中,设置layout_weightsum = 3。

在TextView中,设置layout_weight = 2并在View中设置layout_weight = 1。

无论textview中文本的长度如何,视图和textview都将正确呈现。

答案 3 :(得分:0)

根据developer.android.com上的RelativeLayout.LayoutParams,您可以将RelativeLayoutandroid:layout_toRightOf一起使用,这与您一直在寻找的完全相同。

答案 4 :(得分:0)

您可以尝试将两个视图放在一个水平的LinearLayout中,并为TextView设置 android:maxWidth ,这样当ViewView短暂时,它将保留在TextView的右侧/ p>

  

| [TextView short] [查看] _______ |

,当它很长时,TextView只会扩展你设置的最大宽度。

  

| [TextView with long t ...] [查看] |