1

我在已经居中的 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"
    />

这就是显示的布局图像:

布局图像

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

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

4

1 回答 1

0

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

  • 我不这么认为。您只能相对于 View 所代表的实际框进行制作。在 TextView 的情况下,框比文本大。无论文本在哪里或看起来如何,您所做的任何关系都将使用 Box 的位置。

尝试使用

android:layout_centerVertical="true"

除了你现在的重力之外,你的温度 TextView 上。

于 2012-05-07T20:13:29.840 回答