【问题标题】:Cannot Center TextView Vertically using android:gravity="center_vertical" and android:layout_centerVertical="true"无法使用 android:gravity="center_vertical" 和 android:layout_centerVertical="true" 垂直居中 TextView
【发布时间】:2013-12-20 20:01:55
【问题描述】:

我试图在一个相对布局中垂直居中两个文本视图。我正在尝试使用参数 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>

【问题讨论】:

  • 尝试使用 android:layout_gravity 而不是 android:gravity

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


【解决方案1】:

试试这个:

<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>

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      • 1970-01-01
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多