TextView位于另一个TextView的右上角

时间:2013-10-31 12:39:44

标签: android textview alignment relativelayout

我希望在RelativeLayout中有一个垂直和水平居中的TextView(firstTextView),并且有一个第二个TextView(secondTextView),其左上角与firstTextView的右上角相匹配。这是我的代码:

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="25"
            android:id="@+id/firstTextView"
            android:layout_centerInParent="true"
            android:textSize="72sp"
            android:singleLine="false" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="°"
            android:id="@+id/secondTextView"
            android:layout_toEndOf="@id/currentTemp"
            />

</RelativeLayout>

问题是第二个视图位于第一个视图之上。

2 个答案:

答案 0 :(得分:2)

您可以使用属性android:layout_toRightOf="someID"

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="25"
        android:id="@+id/firstTextView"
        android:layout_centerInParent="true"
        android:textSize="72sp"
        android:singleLine="false" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="°"
        android:id="@+id/secondTextView"
        android:layout_toRightOf="@id/currentTemp"  // <-- Here 
        />

According to the docs toEndOf

  

将孩子的起始边缘与另一个孩子的结束边缘对齐的规则。

因此,默认情况下,View RelativeLayout位于左上角的{{1}},因此此属性不会更改垂直位置。

答案 1 :(得分:0)

// try this
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="25"
        android:id="@+id/firstTextView"
        android:layout_gravity="center"
        android:textSize="72sp"
        android:singleLine="false" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="°"
        android:layout_margin="5dp"
        android:layout_gravity="right|top"
        android:id="@+id/secondTextView"/>

</FrameLayout>