RelativeLayout中心垂直3文本视图

时间:2017-02-02 11:48:34

标签: android xamarin

我试图减少列表项上的层次结构数量,因此我只有一个RelativeLayout,但我很难理解如何处理LinearLayout的相同行为。

例如:

  <RelativeLayout
    android:id="@+id/ordercardcontentrow"
    android:layout_width="match_parent"
    local:MvxBind="BackgroundColor NativeColor(BackgroundColour)"
    android:layout_marginBottom="4dp"
    android:layout_marginLeft="1dp"
    android:layout_marginRight="1dp"
    android:layout_height="match_parent">
    <TextView
        android:layout_marginTop="10dp"
        android:layout_toRightOf="@id/order_classification_image"
        android:id="@+id/order_header"
        style="@style/NormalText.Regular"
        android:layout_width="160dp"
        android:textSize="@dimen/text_size_small"
        android:ellipsize="end"
        android:singleLine="true"
        local:MvxBind="Text OrderHeader" />
    <TextView
        android:layout_marginTop="2dp"
        android:layout_toRightOf="@id/order_classification_image"
        android:id="@+id/post_code"
        android:layout_below="@id/order_header"
        style="@style/TitleText.Regular"
        android:textSize="@dimen/text_size_vlarge"
        android:ellipsize="end"
        android:singleLine="true"
        local:MvxBind="Text Postcode; Visible IsDelivery" />
    <TextView
        android:layout_marginTop="2dp"
        android:layout_toRightOf="@id/order_classification_image"
        android:id="@+id/order_id"
        style="@style/NormalText.Medium"
        android:layout_below="@id/post_code"
        android:textSize="@dimen/text_size_vsmall"
        android:textColor="@color/dark_grey"
        local:MvxBind="Text FormattedOrderId" />
</RelativeLayout>

但如果中间的那个当然不可见,那么我的相对布局不会垂直居中,我怎么能实现呢?

干杯!

2 个答案:

答案 0 :(得分:0)

尝试(根据您的需要调整):

记住,android:layout_width和height是必需的。

<RelativeLayout
        android:id="@+id/ordercardcontentrow"
        android:layout_width="match_parent"
        android:gravity="center_vertical"
        android:layout_height="match_parent"
        android:layout_marginBottom="4dp"
        android:layout_marginLeft="1dp"
        android:layout_marginRight="1dp">

        <TextView
            android:id="@+id/order_header"
            android:layout_width="160dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:ellipsize="end"
            android:text="AAAA" />

        <TextView
            android:visibility="gone"
            android:id="@+id/post_code"
            android:layout_width="160dp"
            android:layout_height="wrap_content"
            android:layout_below="@id/order_header"
            android:layout_marginTop="2dp"
            android:ellipsize="end"
            android:text="BBBB" />

        <TextView
            android:id="@+id/order_id"
            android:layout_width="160dp"
            android:layout_height="wrap_content"
            android:layout_below="@id/post_code"
            android:layout_marginTop="2dp"
            android:text="CCCC"

            />
    </RelativeLayout>

答案 1 :(得分:0)

将重心android:gravity="center"用于relativelayout

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ordercardcontentrow"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="4dp"
    android:layout_marginLeft="1dp"
    android:layout_marginRight="1dp"
    android:gravity="center">

    <TextView
        android:id="@+id/order_header"
        android:layout_width="160dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:ellipsize="end"
        android:text="sdff" />

    <TextView
        android:id="@+id/post_code"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/order_header"
        android:layout_marginTop="2dp"
        android:ellipsize="end"
        android:text="sdff" />

    <TextView
        android:id="@+id/order_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/post_code"
        android:layout_marginTop="2dp"
        android:text="sdff" />
</RelativeLayout>