如何将此 EditText 放在 LinearLayout 的右侧?
How to put this EditText on the right in a LinearLayout?
我创建了这个表单:
写这个XML布局:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/fields"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp">
<LinearLayout
android:id="@+id/layoutCountry"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/textCountry"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp"
android:text="@string/text_country"
android:textColor="@color/black" />
<Spinner
android:id="@+id/spinnerCountry"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1.5"
android:textSize="18sp"
android:inputType="text"
android:textColor="@color/black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<EditText
android:id="@+id/editCustom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:inputType="text"
android:textColor="@color/black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/city"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp"
android:text="@string/text_city"
android:textColor="@color/black" />
<EditText
android:id="@+id/editCity"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:textSize="18sp"
android:inputType="text"
android:textColor="@color/black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/postal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp"
android:text="@string/text_postal"
android:textColor="@color/black" />
<EditText
android:id="@+id/editPostal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:textSize="18sp"
android:inputType="text"
android:textColor="@color/black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/textAddress"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp"
android:text="@string/text_address"
android:textColor="@color/black" />
<EditText
android:id="@+id/editAddress"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:textSize="18sp"
android:inputType="text"
android:textColor="@color/black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/textTel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp"
android:text="@string/text_tel"
android:textColor="@color/black" />
<EditText
android:id="@+id/editTel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:textSize="18sp"
android:inputType="text"
android:textColor="@color/black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/textEmail"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp"
android:text="@string/email"
android:textColor="@color/black" />
<EditText
android:id="@+id/editEmail"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:textSize="18sp"
android:inputType="textEmailAddress"
android:textColor="@color/black" />
</LinearLayout>
</LinearLayout>
</ScrollView>
如您所见,第二个 EditText 太长,我会将其与其他字段对齐,如下所示:
我尝试在那里使用 RelativeLayout 并使用 LinearLayout 进行一些更改,但我越来越疯狂,因为我无法达到我的目的。
我对 XML 布局不是很专业...:(
尝试改用 TableLAyout
尝试正确设置引力,然后设置一些边距。可能会做你想做的事。大多数时候我更喜欢使用 RelativeLayouts 因为它们更容易操作。
我只编辑了第二个 LinearLayout
这个问题,这是解决方案:
- 在
EditText
中,您必须将 layout_weight="1.5"
设置为与其他设置相同,并且 android:layout_width="0dp"
- 在
EditText
的父视图中,LinearLayout
设置 android:weightSum=2.5"
(1 + 1.5)
将android:gravity="right"
设置为LinearLayout
Fin!
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="2.5"
android:gravity="right"
android:orientation="horizontal">
<EditText
android:id="@+id/editCustom"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="18sp"
android:inputType="text"
android:layout_weight="1.5"
android:textColor="@color/black" />
</LinearLayout>
在你的 EditText 的父 LinearLayout 视图中有这个:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alignLeft="@id/spinnerCountry"
android:orientation="horizontal">
这会将整个 LinearLayout 的左侧与 Spinner 的左侧对齐。
通过
替换第二个 EditText 的代码
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/textCountry"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="" />
<EditText
android:id="@+id/editCustom"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:inputType="text"
android:textColor="@color/black"
android:textSize="18sp" />
</LinearLayout>
您可以添加空的 Textview 并通过为两者定义适当的权重来实现它。并确保在为任何视图定义 layout_weight 时将宽度定义为 android:layout_width="0dp"
我创建了这个表单:
写这个XML布局:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/fields"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp">
<LinearLayout
android:id="@+id/layoutCountry"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/textCountry"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp"
android:text="@string/text_country"
android:textColor="@color/black" />
<Spinner
android:id="@+id/spinnerCountry"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1.5"
android:textSize="18sp"
android:inputType="text"
android:textColor="@color/black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<EditText
android:id="@+id/editCustom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:inputType="text"
android:textColor="@color/black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/city"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp"
android:text="@string/text_city"
android:textColor="@color/black" />
<EditText
android:id="@+id/editCity"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:textSize="18sp"
android:inputType="text"
android:textColor="@color/black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/postal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp"
android:text="@string/text_postal"
android:textColor="@color/black" />
<EditText
android:id="@+id/editPostal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:textSize="18sp"
android:inputType="text"
android:textColor="@color/black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/textAddress"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp"
android:text="@string/text_address"
android:textColor="@color/black" />
<EditText
android:id="@+id/editAddress"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:textSize="18sp"
android:inputType="text"
android:textColor="@color/black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/textTel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp"
android:text="@string/text_tel"
android:textColor="@color/black" />
<EditText
android:id="@+id/editTel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:textSize="18sp"
android:inputType="text"
android:textColor="@color/black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/textEmail"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="18sp"
android:text="@string/email"
android:textColor="@color/black" />
<EditText
android:id="@+id/editEmail"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:textSize="18sp"
android:inputType="textEmailAddress"
android:textColor="@color/black" />
</LinearLayout>
</LinearLayout>
</ScrollView>
如您所见,第二个 EditText 太长,我会将其与其他字段对齐,如下所示:
我尝试在那里使用 RelativeLayout 并使用 LinearLayout 进行一些更改,但我越来越疯狂,因为我无法达到我的目的。 我对 XML 布局不是很专业...:(
尝试改用 TableLAyout
尝试正确设置引力,然后设置一些边距。可能会做你想做的事。大多数时候我更喜欢使用 RelativeLayouts 因为它们更容易操作。
我只编辑了第二个 LinearLayout
这个问题,这是解决方案:
- 在
EditText
中,您必须将layout_weight="1.5"
设置为与其他设置相同,并且android:layout_width="0dp"
- 在
EditText
的父视图中,LinearLayout
设置android:weightSum=2.5"
(1 + 1.5) 将
android:gravity="right"
设置为LinearLayout
Fin!<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:weightSum="2.5" android:gravity="right" android:orientation="horizontal"> <EditText android:id="@+id/editCustom" android:layout_width="0dp" android:layout_height="wrap_content" android:textSize="18sp" android:inputType="text" android:layout_weight="1.5" android:textColor="@color/black" /> </LinearLayout>
在你的 EditText 的父 LinearLayout 视图中有这个:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alignLeft="@id/spinnerCountry"
android:orientation="horizontal">
这会将整个 LinearLayout 的左侧与 Spinner 的左侧对齐。
通过
替换第二个 EditText 的代码 <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/textCountry"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="" />
<EditText
android:id="@+id/editCustom"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:inputType="text"
android:textColor="@color/black"
android:textSize="18sp" />
</LinearLayout>
您可以添加空的 Textview 并通过为两者定义适当的权重来实现它。并确保在为任何视图定义 layout_weight 时将宽度定义为 android:layout_width="0dp"