我有以下看法结构:卧式布局TextViews对齐左右
------------------------------------
||------------||------------------||
||Text View 1 || Long Text View 3||
||------------||------------------||
||------------||------------------||
||Text 2 || View 4 ||
||------------||------------------||
------------------------------------
我想以下行为:
- 左列左对齐
- 右列作为一个组与右边界对齐,但TextViews与左边对齐。
- 只要留下足够的空间用于其他列,则列会延伸并占用空间。
- 如果没有足够的空间来完全适合两列,则水平空间被分割为1/2,并且文本视图将自动换行。
我几乎实现了这两个垂直LinearLayouts嵌套到水平LinearLayout。但#3不满意。如果我为左右两列设置权重= 1,即使有更多空间,它们也最多占据50%。
我该如何达到所需的布局?
我已阅读Aligning textviews on the left and right edges in Android layout和其他答案。 Relativelayout不起作用 - 在文本溢出的情况下,一列与另一列重叠。或者,如果我指定“toTheRightOf”,它首先完全离开列,然后尝试以每行垂直文本的单个字符结尾的右列结束。
我的XML:
<LinearLayout
android:orientation="horizontal"
android:layout_height="wrap_content"
android:layout_width="match_parent">
<LinearLayout
android:id="@+id/leftTopPanel"
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="1dp"
android:gravity="left"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="very very very long text "
style="@style/InfoTextStyle.Big"
android:id="@+id/leftTopText"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="text"
style="@style/InfoTextStyle"
android:id="@+id/leftTopText2"/>
</LinearLayout>
<LinearLayout
android:id="@+id/rightTopPanel"
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="1dp"
android:layout_weight="1"
android:gravity="right"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Also very very very long text"
style="@style/InfoTextStyle"
android:id="@+id/rightTopText"
android:layout_gravity="left"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Shorter text"
style="@style/InfoTextStyle"
android:id="@+id/rightTopText2"
android:layout_gravity="left"/>
</LinearLayout>
</LinearLayout>
安置自己的XAML,使我们有一个起点 – ramaral
加了我的布局XML –
我THIK阿卜杜勒NURKALEM有一个不错的办法。 – ramaral