0

几天前,我正在搜索一个带有“标签”的edittext实现,用于用户名输入。我从 Stackoverflow 中找到了以下 xml 代码。

<FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:layout_margin="10dp">

        <EditText
            android:id="@+id/username_editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="15sp"
            android:hint="Πατήστε εδώ"
            android:inputType="text"
            android:maxLength="20"
            android:paddingLeft="125dp"
            tools:ignore="HardcodedText" >

             <requestFocus />
        </EditText>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginBottom="0dp"
            android:layout_marginLeft="0dp"
            android:layout_marginRight="0dp"
            android:paddingLeft="12dp"
            android:text="Όνομα χρήστη:"
            android:textColor="@color/grey"
            android:textSize="15sp"
            tools:ignore="HardcodedText" />

        </FrameLayout>

结果是我需要的,除了一件事。edittext 和 textview 都没有在它们的 y 轴上对齐,文本的底部没有在小分辨率下对齐。我从 3.7 英寸得到的截图: 在此处输入图像描述

我画了一条红线,你可以看到它们没有对齐。有什么帮助吗?

4

2 回答 2

3

要对齐文本,您需要一个带有 layout 参数的 Relativelayout:组件的android:layout_alignBaseline。试试这个,让我更新:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp" >

    <EditText
        android:id="@+id/username_editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:inputType="text"
        android:ems="10"
        android:maxLength="20"
        android:textSize="15sp"
        android:hint="Πατήστε εδώ"
        android:paddingLeft="125dp" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/username_editText"
        android:layout_alignBottom="@+id/username_editText"
        android:layout_alignParentLeft="true"
        android:paddingLeft="10dp"
        android:text="Όνομα χρήστη:"
        android:text="TextView" />

</RelativeLayout>
于 2013-05-19T18:56:15.313 回答
0

删除行:

        android:layout_gravity="center_vertical"

从你的 TextView。该行使 TextView 以垂直轴为中心,而 EditText 则不是。这就是导致错位问题的原因。

于 2013-05-19T18:16:10.887 回答