我在Android画布上看到了一些关于TextView
与EditText
对齐的帖子。但是,我没有找到能够以正确的方式帮助我的答案。我希望以下列方式TextView
和EditText
:
(TextView) (EditText) (TextView) (EditText)
(TextView) (EditText) (TextView) (EditText)
(TextView) (EditText) (TextView) (EditText)
(TextView) (EditText)
EditText
width 和 height 是预定义的(dp中给出的值)。此外,还给出了 TextEdit 的 top 和左边距。这意味着我必须在屏幕上放置一定大小的EditText
和某个位置。这没关系,我使用一个RelativeLayout
容器实现了它。
但是我也应该在TextView
旁边放置标签{EditText
},这样我就不会在dps中指定任何值,因为textviews必须自动放置EditText
。例如
Street: [Main Street]
Street Number: [ 4 ]
我尝试使用相对布局属性:
layout_alignTop="@id/EditText"
layout_toLeftOf="@id/EditText"
但是,TextView没有显示,因为它位于EditText
左侧,但正好位于左边距(顶部对齐方式),而不是“完全”位于EditText旁边(2dp或3dp从EditText
左侧)就像我想要的那样。
我也尝试了其他属性,但没有结果。
EditText
附近,就像我想要的那样?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>
答案 0 :(得分:1)
你正在使用layout_margin左边创建问题,如果你需要这么多,为什么不使用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" />
答案 1 :(得分:0)
只需排列XML,您就可以使用padding实现所需的功能。
<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">