Android 将TextView与相对布局内的EditText对齐

Android 将TextView与相对布局内的EditText对齐,android,android-edittext,textview,alignment,android-relativelayout,Android,Android Edittext,Textview,Alignment,Android Relativelayout,我在Android画布上看到了一些关于将TextView与EditText对齐的帖子。但是,我没有找到一个能以正确的方式帮助我的答案。我的愿望是以以下方式拥有TextView和EditText: (TextView) (EditText) (TextView) (EditText) (TextView) (EditText) (TextView) (EditText) (TextView) (EditText)

我在Android画布上看到了一些关于将
TextView
EditText
对齐的帖子。但是,我没有找到一个能以正确的方式帮助我的答案。我的愿望是以以下方式拥有
TextView
EditText

     (TextView) (EditText)          (TextView) (EditText)
     (TextView) (EditText)          (TextView) (EditText)
     (TextView) (EditText)          (TextView) (EditText)
     (TextView) (EditText)
EditText
宽度和高度是预定义的(dp中给出的值)。此外,还提供了文本编辑的顶部和左侧边距。这意味着我必须在屏幕上的特定位置放置特定大小的
EditText
。这很好,我使用一个
RelativeLayout
容器实现了它。 但我也应该将标签(
TextView
)放在
EditText
旁边,这样我就不会在dps中指定任何值,因为TextView必须相对于
EditText
自动放置。比如说

           Street: [Main Street] 
    Street Number: [     4     ]   
我尝试使用相对布局属性:

  layout_alignTop="@id/EditText"
  layout_toLeftOf="@id/EditText"
但是,文本视图没有显示,因为它位于
EditText
的左侧,但正好位于左边距上(顶部对齐有效),而不是像我所希望的那样“正好”位于EditText旁边(从
EditText
左起为2dp或3dp)。 我还尝试了其他属性,但没有结果

  • 有没有像我想要的那样,在
    EditText
    附近放置标签的原生android属性
  • 在相对布局中是否有一些属性可以为我完成这项工作
  • 有没有办法指定
    TextView
    距离
    EditText
    只剩下3 dp
  • 还有其他解决办法吗
  • 谢谢

    <RelativeLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <EditText
        android:id="@+id/EditText1"
        android:hint="Write..."
        android:layout_width="80dp"
        android:layout_height="22dp"
        android:layout_marginTop="61dp"
        android:layout_marginLeft="160dp"
        android:background="@android:drawable/editbox_dropdown_light_frame"/>
    
        <TextView
        android:id="@+id/TextView1"
        android:layout_width="wrap_content"
        android:layout_height="22dp"
        android:text="Text"
        android:layout_toLeftOf="@+id/EditText1"
        android:layout_alignTop="@+id/EditText1"/>
    
        <EditText
        android:id="@+id/EditText2"
        android:hint="Write..."
        android:layout_width="200dp"
        android:layout_height="22dp"
        android:layout_marginTop="61dp"
        android:layout_marginLeft="490dp"
        android:background="@android:drawable/editbox_dropdown_light_frame"/>
    
        <TextView
        android:id="@+id/TextView2"
        android:layout_width="wrap_content"
        android:layout_height="22dp"
        android:text="Text"
        android:layout_alignTop="@+id/EditText2"
        android:layout_toLeftOf="@+id/EditText2" />
    
        </RelativeLayout>
    

    您使用的是左边距布局,这就产生了问题,如果您的需求正是如此,为什么不使用TableLayout

    <?xml version="1.0" encoding="utf-8"?>
    <TableLayout
         xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <TableRow
            android:layout_marginTop="61dp">
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_weight="1">
            <TextView
                android:id="@+id/TextView1"
                android:layout_width="wrap_content"
                android:layout_height="22dp"
                android:text="Text" />
            <EditText
                android:id="@+id/EditText1"
                android:hint="Write..."
                android:layout_width="80dp"
                android:layout_height="22dp"
                android:background="@android:drawable/editbox_dropdown_light_frame"/>
    
    
        </LinearLayout>
    
    
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_weight="1"
            >
            <TextView
                android:id="@+id/TextView2"
                android:layout_width="wrap_content"
                android:layout_height="22dp"
                android:text="Text" />
            <EditText
                android:id="@+id/EditText2"
                android:hint="Write..."
                android:layout_width="80dp"
                android:layout_height="22dp"
                android:background="@android:drawable/editbox_dropdown_light_frame"/>
    
    
        </LinearLayout>
    </TableRow>
    </TableLayout>
    
    
    
    只需复制整个TableRow标记并粘贴任意多行即可

    **但是,如果您仍然需要相对布局,这里是您的修复代码**只需根据您的需要正确更改边距值

    <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    
    <TextView
        android:id="@+id/TextView1"
        android:layout_width="wrap_content"
        android:layout_height="22dp"
        android:text="Text"
        android:layout_marginTop="57dp"
        android:layout_marginLeft="80dp"
        />
    
    <EditText
        android:id="@+id/EditText1"
        android:hint="Write..."
        android:layout_width="80dp"
        android:layout_height="22dp"
        android:background="@android:drawable/editbox_dropdown_light_frame"
        android:layout_alignTop="@+id/TextView1"
        android:layout_toRightOf="@+id/TextView1"
        android:layout_toEndOf="@+id/TextView1" />
    
    
    
    <EditText
        android:id="@+id/EditText2"
        android:hint="Write..."
        android:layout_width="80dp"
        android:layout_height="22dp"
        android:background="@android:drawable/editbox_dropdown_light_frame"
        android:layout_alignTop="@+id/EditText1"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginRight="25dp"
        android:layout_marginEnd="25dp" />
    
    <TextView
        android:id="@+id/TextView2"
        android:layout_width="wrap_content"
        android:layout_height="22dp"
        android:text="Text"
        android:layout_alignTop="@+id/EditText2"
        android:layout_toLeftOf="@+id/EditText2"
        android:layout_toStartOf="@+id/EditText2" />
    
    
    

    只需整理XML,就可以使用填充实现所需的内容

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="16dp"
        android:paddingRight="16dp">
    
    
    
    您可以显示您的xml布局代码吗确定您也可以使用此网站上载代码并共享链接,无需注册,代码将在7天内删除代码结构如下:EditText TextView EditText TextView在EditText中指定了高度、宽度、左右边距,在dp中指定了TextView宽度,高度换行内容、对齐\顶部和对齐\左侧与相应的EditText id对齐。请尝试这两个属性并提供正确的id,android:layout\ u alignBaseline=“@+id/EditText”android:layout\ u toLeftOf=“@+id/EditText”感谢您的帮助。我很感激。:)我现在就试试。如果您正在使用表布局,请检查与表布局相关的属性,以获得对布局的更多控制:)