无法使用android:gravity =“center_vertical”和android:layout_centerVertical =“true”垂直居中TextView

时间:2013-12-20 20:01:55

标签: android xml relativelayout android-ui android-xml

我正试图在RelativeLayout中垂直居中两个文本视图。我正在尝试使用参数android:gravity="center_vertical"android:layout_centerVertical="true",但两个文字视图(uploaderTvviewCountTv)仍然偏离中心(垂直)

实施例

http://i.stack.imgur.com/czacA.png

来源:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:paddingBottom="7dip"
    android:paddingTop="7dip" >

    <TextView
        android:id="@+id/titleTv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/white"
        android:paddingLeft="5dp"
        android:text=""
        android:textSize="20sp" />

    <TextView
        android:id="@+id/uploaderTv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/titleTv"
        android:paddingLeft="5dip"
        android:adjustViewBounds="true"
        android:gravity="center_vertical"
        android:layout_centerVertical="true"
        android:textColor="@color/verylightgrey"
        android:textSize="16sp" />

    <TextView
        android:id="@+id/viewCountTv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/titleTv"
         android:gravity="center_vertical"
        android:layout_centerVertical="true"
        android:adjustViewBounds="true"
        android:layout_toRightOf="@id/uploaderTv"
        android:textColor="@android:color/black"
        android:textSize="16sp" />

    <ImageView
        android:id="@+id/buyButton"
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:layout_below="@+id/titleTv"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:adjustViewBounds="true"
        android:gravity="center"
        android:paddingTop="7dip"
        android:src="@drawable/buy_a_up_btn" />
</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

您根本无法在容器中垂直居中两个元素。中心是集装箱的中间。你会如何在这个中心放置两个元素?

答案 1 :(得分:0)

试试这个:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingBottom="7dip"
        android:paddingTop="7dip" >

    <TextView
            android:id="@+id/titleTv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/white"
            android:paddingLeft="5dp"
            android:text=""
            android:textSize="20sp" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

       <ImageView
            android:id="@+id/buyButton"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_centerVertical="true"
            android:layout_alignParentRight="true"
            android:adjustViewBounds="true"
            android:paddingTop="7dip"
            android:src="@drawable/buy_a_up_btn" />

        <TextView
            android:id="@+id/uploaderTv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:paddingLeft="5dip"
            android:adjustViewBounds="true"
            android:textColor="@color/verylightgrey"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/viewCountTv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/uploaderTv"
            android:layout_toLeftOf="@id/buyButton"
            android:layout_centerVertical="true"
            android:adjustViewBounds="true"
            android:textColor="@android:color/black"
            android:textSize="16sp" />

    </RelativeLayout>

</LinearLayout>

这将两个TextViews和ImageView包装在RelativeLayout中。