Android: 水平 LinearLayout 没有按预期布局元素
Android: horizontal LinearLayout does not lay out elements as expected
我创建了一个包含 EditText 和按钮的水平 LinearLayout。按钮应尽可能窄,EditText 应占据整个剩余 space。
像那样:
我写这段代码:
<LinearLayout
android:id="@+id/textInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/editTextToSpeak"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:ems="10"
android:hint="@string/text_to_speak"
android:inputType="text" />
<Button
android:id="@+id/saveCard"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/save_card" />
</LinearLayout>
我得到了这张照片:
按钮完全不可见,EditText的高度增加了一倍。
如何使这些元素看起来像第一张图片中的样子?
您可以通过在您的 EditText 中使用 android:layout_weight="1"
和 android:layout_width = "0dp"
轻松存档,因此它会占用 space 除了您的按钮区域之外的其余部分。
<LinearLayout
android:id = "@+id/textInputLayout"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:orientation = "horizontal">
<EditText
android:layout_weight="1"
android:id="@+id/editTextToSpeak"
android:layout_width="0dp"
android:layout_height="match_parent"
android:ems="10"
android:hint="@string/text_to_speak"
android:inputType="text" />
<Button
android:id="@+id/saveCard"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/save_card" />
</LinearLayout>
希望有所帮助:)
使用 android:weightSum & android:weight。它将使您能够垂直或水平固定尺寸。
<LinearLayout
android:id = "@ + id/textInputLayout"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:orientation = "horizontal"
android:weightSum="3">
<EditText
android:id = "@+id/editTextToSpeak"
android:layout_width ="match_parent"
android:layout_height = "match_parent"
android:ems = "10"
android:hint = "@string/text_to_speak"
android:inputType = "text"
/>
<Button
android:id = "@+id/saveCard"
android:layout_width = "wrap_content"
android:layout_height = "match_parent"
android:text = "@ string/save_card"
android:layout_weight="1"/>
您也可以在android中使用相对布局来实现。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:layout_height="wrap_content"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<EditText
android:id="@+id/editTextToSpeak"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/text_to_speak"
android:inputType="text"
android:layout_toStartOf="@+id/saveCard"/>
<Button
android:id="@+id/saveCard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/save_card"
android:layout_alignParentEnd="true"/>
</RelativeLayout>
希望对您有所帮助。)
我创建了一个包含 EditText 和按钮的水平 LinearLayout。按钮应尽可能窄,EditText 应占据整个剩余 space。 像那样:
我写这段代码:
<LinearLayout
android:id="@+id/textInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/editTextToSpeak"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:ems="10"
android:hint="@string/text_to_speak"
android:inputType="text" />
<Button
android:id="@+id/saveCard"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/save_card" />
</LinearLayout>
我得到了这张照片:
按钮完全不可见,EditText的高度增加了一倍。
如何使这些元素看起来像第一张图片中的样子?
您可以通过在您的 EditText 中使用 android:layout_weight="1"
和 android:layout_width = "0dp"
轻松存档,因此它会占用 space 除了您的按钮区域之外的其余部分。
<LinearLayout
android:id = "@+id/textInputLayout"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:orientation = "horizontal">
<EditText
android:layout_weight="1"
android:id="@+id/editTextToSpeak"
android:layout_width="0dp"
android:layout_height="match_parent"
android:ems="10"
android:hint="@string/text_to_speak"
android:inputType="text" />
<Button
android:id="@+id/saveCard"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/save_card" />
</LinearLayout>
希望有所帮助:)
使用 android:weightSum & android:weight。它将使您能够垂直或水平固定尺寸。
<LinearLayout
android:id = "@ + id/textInputLayout"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:orientation = "horizontal"
android:weightSum="3">
<EditText
android:id = "@+id/editTextToSpeak"
android:layout_width ="match_parent"
android:layout_height = "match_parent"
android:ems = "10"
android:hint = "@string/text_to_speak"
android:inputType = "text"
/>
<Button
android:id = "@+id/saveCard"
android:layout_width = "wrap_content"
android:layout_height = "match_parent"
android:text = "@ string/save_card"
android:layout_weight="1"/>
您也可以在android中使用相对布局来实现。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:layout_height="wrap_content"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<EditText
android:id="@+id/editTextToSpeak"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/text_to_speak"
android:inputType="text"
android:layout_toStartOf="@+id/saveCard"/>
<Button
android:id="@+id/saveCard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/save_card"
android:layout_alignParentEnd="true"/>
</RelativeLayout>
希望对您有所帮助。)