如何镜像文字位置?

时间:2014-03-27 16:56:05

标签: android android-layout

我正在尝试在左右两侧放置一些文字,如下图所示。

enter image description here

这里发生的是右列中的最后一行(“更多文本”)是最宽的,因此它将上面的两行向上推到右边。为了对称,左列被进一步向左推。文本值应该是动态的。有谁知道应该如何设计布局?

这是我的代码(遗憾的是,它甚至没有与右边对齐!):

<LinearLayout 
    android:layout_height="0dp"
    android:layout_width="match_parent"
    android:layout_weight="1">
    <RelativeLayout android:layout_height="match_parent"
        android:layout_width="0dp"
        android:layout_weight="1">
        <RelativeLayout android:id="@+id/description_30"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true">        
            <TextView android:id="@+id/title_30"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="30 DAYS"/>
            <TextView android:id="@+id/num_ds_30"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/title_30"/>
            <TextView android:id="@+id/num_bs_30"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"            
                android:layout_below="@id/num_ds_30"/>
        </RelativeLayout>
    </RelativeLayout>

    <RelativeLayout android:id="@+id/description_today"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_toRightOf="@id/description_30">
        <TextView android:id="@+id/title_today"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:text="TODAY"/>
        <TextView android:id="@+id/num_ds_today"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:layout_below="@id/title_today"/>
        <TextView android:id="@+id/num_bs_today"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="right"          
            android:layout_below="@id/num_ds_today"/>
        </RelativeLayout>
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

你可以通过嵌套LinearLayout来实现这样的目标。外部LinearLayout将有orientation=horizontal,而内部LinearLayout的方向为vertical,每个都有layout_weight=1,第二个(右){{ 1}}也有LinearLayout

代码就是这样的。

gravity="right"

答案 1 :(得分:0)

我认为使用RelativeLayout并将TextViews向左/右对齐是一种很好的方法。像这样:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/Text1_Left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true" />

    <TextView
        android:id="@+id/Text2_Left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/Text1_Left" />

    <TextView
        android:id="@+id/Text3_Left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/Text2_Left" />

    <TextView
        android:id="@+id/Text1_Right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@id/Text1_Left"
        android:gravity="right" />

    <TextView
        android:id="@+id/Text2_Right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@id/Text1_Right"
        android:layout_toRightOf="@id/Text2_Left"
        android:gravity="right" />

    <TextView
        android:id="@+id/Text3_Right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@id/Text2_Right"
        android:layout_toRightOf="@id/Text1_Left"
        android:gravity="right" />

</RelativeLayout>