0

我有一个小问题。请看下图:

在此处输入图像描述

我在将 TextView1 定位在 edittext 上方时遇到了问题,所以我查看了这个论坛以获得很好的解决方案。我正在使用android:layout_above="@id/edittext",但它似乎不起作用。然后我试了一下android:layout_below="@id/textview",效果很好。但现在我有其他问题。我无法在下面的 edittext 顶部中心对齐 TextView1。我尝试了 layout_align 选项,但它们中的大多数都会抛出异常“一些循环的东西”。

问题在哪里?下面是我的 XML(相对布局)

 <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center"
    android:padding="10dp" >

    <TextView
       android:id="@+id/workingTimeTV"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"    
       android:text="TextView1" />

     <EditText
        android:id="@+id/hoursET"
        android:layout_width="100dp"
        android:text="1"
        android:gravity="center"
        android:maxLength="6"
        android:layout_below="@id/workingTimeTV"
        android:layout_height="wrap_content"
        android:inputType="number" >
        <requestFocus />
    </EditText>

    <TextView
       android:id="@+id/hoursTV"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textSize="25sp"
       android:layout_toRightOf="@id/hoursET"
       android:layout_alignBaseline="@id/hoursET"
       android:text="h" /> 
</RelativeLayout>
4

3 回答 3

1

问题是您假设如果 android:gravity="center"将子元素设置在中心,但它不适用于相对布局,因此您可以使用 android:layout_centerVertical="true"每个子元素,无论您想在中心放置什么。以下修改后的代码将满足您的期望。

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="10dp" >

        <TextView
            android:id="@+id/workingTimeTV"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:text="TextView1" />

        <EditText
            android:id="@+id/hoursET"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:layout_below="@id/workingTimeTV"
            android:layout_centerHorizontal="true"
            android:gravity="center"
            android:inputType="number"
            android:maxLength="6"
            android:text="1" >

            <requestFocus />
        </EditText>

        <TextView
            android:id="@+id/hoursTV"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@id/hoursET"
            android:layout_toRightOf="@id/hoursET"
            android:text="h"
            android:textSize="25sp" />
    </RelativeLayout>
于 2012-11-30T13:52:48.273 回答
0

下面的代码可以帮助你

<TextView
    android:id="@+id/workingTimeTV"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:text="TextView1" />
于 2012-11-30T13:38:25.130 回答
0

使用 android:layout_centerInParent="true" 将您的文本框放在中心,并使用相对布局来执行此操作。

于 2012-11-30T13:46:59.820 回答