TextView和RelativeLayout中的双中心文本问题

时间:2012-05-07 19:51:58

标签: android android-layout

我在将已经居中的TextView中的文本居中时遇到了问题:

这就是布局:

<RelativeLayout>... 
<ImageView
    android:id="@+id/image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:src="@drawable/w0"
    android:layout_margin="10dip"
    android:background="@color/green1"
    />

<TextView
    android:id="@+id/temperature"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_alignBottom="@id/image"
    android:layout_alignTop="@id/image"
    android:layout_toRightOf="@id/image"
    android:text="15º"
    android:textSize="60dip"
    style="bold"
    android:textColor="@color/blue"
    android:gravity="center"
    android:layout_marginLeft="7dip"
    android:background="@color/green1"
    />

<TextView
    android:id="@+id/min_temperature"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@id/temperature"
    android:layout_toRightOf="@id/temperature"
    android:text="M 21º"
    android:textSize="20dip"
    style="bold"
    android:textColor="@color/blue"
    android:layout_marginLeft="5dip"
    android:background="@color/orange1"
    />

<TextView
    android:id="@+id/max_temperature"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@id/temperature"
    android:layout_toRightOf="@id/temperature"
    android:text="m 10º"
    android:textSize="20dip"
    style="bold"
    android:textColor="@color/blue"
    android:layout_marginLeft="5dip"
    android:background="@color/orange2"
    />

这就是显示的布局图像:

Layout image

我不明白为什么15º不在TextView的中心。 问题是由于TextView的强制中心使用了alignTop和alignBottom,但我不明白为什么它不起作用。 我知道我可以使用一些嵌套布局解决这个问题,但我更喜欢只使用RelativeLayout来获得解决方案,或者如果不能理解原因。

还有一个解决方案可以将最大和最小TextViews与15º文本(不是TextView)的顶部和底部对齐,就像现在一样。

1 个答案:

答案 0 :(得分:0)

  

还有一个解决方案可以将最大和最小TextViews与15º文本(不是TextView)的顶部和底部对齐,就像现在一样。

  • 我不这么认为。您只能创建相对于视图所代表的实际框的内容。在TextView的情况下,框大于文本。你做的任何关系都将使用Box的位置,无论文本位于何处或看起来如何。

尝试使用

机器人:layout_centerVertical = “真”

你的温度TextView以及你现在的重力。