我有多个水平线性布局。在垂直列出的每个布局中,我有一个TextView后跟一个EditText。我想为所有EditText视图提供一个恒定的左边距,以便它们对齐,我该如何实现呢?这是部分代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="5dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="5dp" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/pNameL"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="Segoe ui"
android:text="Name"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText2"
style="@style/editText_style"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10" >
</EditText>
</LinearLayout>
答案 0 :(得分:2)
在res / values / style.xml文件中创建样式。如果style.xml不存在则创建一个新的。
<style name="editText_style">
<item name="android:layout_marginLeft">30dp</item>
<item name="android:layout_marginRight">30dp</item>
</style>
然后在<EditText>
标记下的布局文件中(您要在其中更改边距),使用以下方式应用此样式:
style="@style/editText_style"
编辑:如果您的父级是横向的,则无法相对于父级应用保证金。
请尝试使用layout:weight
属性。例如,如果您希望EditText从其父级的一半开始,并且您的父级中包含EditText的总共2个视图,则将两个视图的layout:weight
设置为,例如,0.5。这使得两个视图在其父级中等于空格。
仅当您想要进行更改的所有LinearLayouts
包含相等的否时,此方法才有效。观点。如果不同的LinearLayout
包含不同的号码。视图然后你不能使用样式或没有办法从单个地方进行更改。
注意:使用layout:weight
属性无法获取静态边距值。它取决于您的父母大小,并且可能因屏幕大小而异。