Android:水平线性布局未按预期布局元素
我创建了一个包含EditText和按钮的水平线性布局。按钮应尽可能窄,编辑文本应占据整个剩余空间。 就像这样: 我写这段代码:Android:水平线性布局未按预期布局元素,android,android-layout,android-linearlayout,Android,Android Layout,Android Linearlayout,我创建了一个包含EditText和按钮的水平线性布局。按钮应尽可能窄,编辑文本应占据整个剩余空间。 就像这样: 我写这段代码: <LinearLayout android:id="@+id/textInputLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <
<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>
我得到这张照片:
按钮根本不可见,编辑文本的高度增加了一倍
如何使这些元素看起来像第一张图片?您可以在编辑文本中使用
android:layout\u weight=“1”
和android:layout\u width=“0dp”
轻松归档这些元素,因此它将占用除按钮区域之外的其余空间
<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>
我希望这会有帮助。)