我看到了一些关于TextView
与EditText
在Android canvas上对齐的帖子。但是,我没有找到答案,可以帮助我在正确的方式。我的愿望是有TextView
和EditText
在以下方式:
(TextView) (EditText) (TextView) (EditText)
(TextView) (EditText) (TextView) (EditText)
(TextView) (EditText) (TextView) (EditText)
(TextView) (EditText)
EditText
宽度和高度是预定义的(值以dp给出)。此外,还给出了 textit 的top和left margin。这意味着我必须将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
左)像我想要的。我也尝试了其他属性,但没有结果。
- 是否有一些本地的android属性把标签附近的
EditText
像我想要的? - 是否有一些属性在相对布局,可以为我做的工作?
- 是否有办法只是指定
TextView
是3 dp从EditText
左? - 还有其他解决方案吗?
<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>
你正在使用layout_margin left,这会产生问题,如果你需要的只是这么多,为什么不使用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">