我想在一行中对齐多个(可变)textview。它应该是这样的:Android对齐多行TextView -s行
- Textview1 | Textview2 | TextView3
由于textviews改变关于我有适当地对准他们的问题长度(我所知道的唯一的事情就是Textview1将是最短的一个)。
这里是我的代码(它被放在一个线性布局内):
<RelativeLayout
android:id="@+id/persondetails_names_horizontal_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:gravity="right" >
<TextView
android:id="@+id/persondetails_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:paddingTop="3dp"
android:text=" Title "
android:layout_alignParentRight="true" />
<TextView
android:id="@+id/persondetails_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" Name "
android:textSize="@dimen/font_big"
android:textStyle="bold"
android:layout_toEndOf="@id/persondetails_title"
android:layout_toRightOf="@id/persondetails_title" />
<TextView
android:id="@+id/persondetails_surname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/persondetails_name"
android:layout_toRightOf="@id/persondetails_name"
android:text=" Surname " />
</RelativeLayout>
现在,只要这3个Textviews填写一行在屏幕上一切正常,但是只要一他们变得更大我有一些问题。例如,当我将surname
字段放到很长的位置时,它会将其他两个视图从屏幕中移出(它们不可见),并占用所有空间(但只有一行!)。
我想要的是这些视图对齐到右侧,每个都在前一个的右侧,并且当需要将换行符换行到一个新行(无论哪个文本视图是这样)并且在新的一行以下文字浏览应该与它的权利保持一致。
那么我需要在我的代码中进行更改,以便这些Textviews彼此相邻并在其中一个变得更大时正确移动?
谢谢
我这是怎么实现的Elltz建议:
<LinearLayout
android:id="@+id/persondetails_namen_horizontal_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:gravity="right"
android:orientation="horizontal"
android:weightSum="2" >
<TextView
android:id="@+id/persondetails_wert_titel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right" />
<TextView
android:id="@+id/persondetails_wert_vorname"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_below="@id/persondetails_text_vorname"
android:gravity="right"
android:layout_gravity="right"
android:text=" "
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:overScrollMode="always"
android:scrollHorizontally="true"
android:singleLine="true"/>
<TextView
android:id="@+id/persondetails_wert_nachname"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_below="@id/persondetails_text_vorname"
android:layout_gravity="right"
android:text=" "
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:overScrollMode="always"
android:scrollHorizontally="true"
android:singleLine="true"/>
</LinearLayout>
但仍然没有工作。实际上,我删除了“singleLine = true”,因为如果3个textview中的一个变得太长,我需要中断(不会有打破问题)。
关于破解,我希望每个文本视图都可以根据需要占用多少空间,唯一的问题是所有其他视图都应该正确移动。
属性“单行”不可能是正确的,因为它是可能的,其中一个视图变得很长一条线,但我已经使用单线和没有测试过它:
一)与“单线=真正的”
b)无‘单线=真正的’
在博特情况下,我得到一个错误的输出,但情况2更接近我想要的东西。但是,如果你看看它,你会看到textview2被推动,并且在它的范围内而不是在整个范围内。 Textview 3占用空间最大。但是,我想是每一个观点是完全streched,如果需要breaked到新行(textview1是这样的“弹匣”)
这是我怎么想它的样子:
任何RESP onse?>> – Elltz
抱歉,我没有看到它。你在哪里发布你的答案? – user3466562