Android 将TextView与相对布局内的EditText对齐
我在Android画布上看到了一些关于将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)
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”感谢您的帮助。我很感激。:)我现在就试试。如果您正在使用表布局,请检查与表布局相关的属性,以获得对布局的更多控制:)