在一行中设置三个按钮(水平)android studio with LinearLayout
set three button in a line (Horizontally) android studio with LinearLayout
我正在开发一个 android 应用程序来学习。
并面临一些问题。
不能设置两个按钮中心。
我已经用这个设置了两个按钮
现在我需要在这两个中间的另一个按钮
视图将与 this
一样
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="start"
android:gravity="start">
<Button
android:id="@+id/dialog_positive_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Set"
android:background="#dde5ad" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="end"
android:gravity="end">
<Button
android:id="@+id/dialog_negative_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="No"
android:background="#dde5ad" />
</LinearLayout>
我需要这两个的中心。
使用layout_weight
<?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:layout_weight="3"
android:orientation="horizontal">
<Button
android:id="@+id/dialog_positive_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#dde5ad"
android:text="Set" />
<Button
android:id="@+id/dialog_neutral_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="#dde5ad"
android:layout_weight="1"
android:text="your text" />
<Button
android:id="@+id/dialog_negative_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="#dde5ad"
android:layout_weight="1"
android:text="No" />
</LinearLayout>
您需要为此使用 layout_weight
& layout_gravity
:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:layout_weight="1"
android:gravity="start"
android:orientation="vertical">
<Button
android:id="@+id/dialog_positive_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#dde5ad"
android:text="Set" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#dde5ad"
android:text="Set" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="end"
android:gravity="end"
android:orientation="vertical">
<Button
android:id="@+id/dialog_negative_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#dde5ad"
android:text="No" />
</LinearLayout>
</LinearLayout>
您可以摆脱不必要的线性布局。如果你只需要在一行中添加三个按钮,你可以只在水平 LinearLayout
上这样做:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/dialog_positive_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Set"
android:background="#dde5ad"
/>
<!-- this is your new Button -->
<Button
android:id="@+id/new_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Set"
android:background="#dde5ad"
/>
<Button
android:id="@+id/dialog_negative_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="No"
android:background="#dde5ad"
/>
</LinearLayout>
另请注意,嵌套 lienar 布局可能会影响您的性能。如果您需要进行复杂的布局,请尝试 constraint layout
希望对您有所帮助,编码愉快!
您应该尝试为每个按钮设置 android:layout_weight="1",每个按钮占用可用空间的 1/3宽度,使它们在水平方向上均匀分布。请参阅下面的布局,您有 2 个选项来获得相似的结果,一个使用 gravity 而另一个 layout_weight。最终结果类似,但带有 layout_weight="1" 的选项更可取:
<LinearLayout
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/dialog_positive_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Set"
android:background="#dde5ad"
/>
<Button
android:layout_marginStart="20dp"
android:id="@+id/center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Center"
android:background="#dde5ad"
/>
<Button
android:layout_marginStart="20dp"
android:id="@+id/dialog_negative_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="No"
android:background="#dde5ad"
/>
</LinearLayout>
或者你有第二个选项:
<LinearLayout
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/dialog_positive_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Set"
android:background="#dde5ad"
/>
<Button
android:layout_weight="1"
android:layout_marginStart="20dp"
android:id="@+id/center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Center"
android:background="#dde5ad"
/>
<Button
android:layout_weight="1"
android:layout_marginStart="20dp"
android:id="@+id/dialog_negative_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="No"
android:background="#dde5ad"
/>
</LinearLayout>
使用这个 -
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="start"
android:gravity="start">
<Button
android:id="@+id/dialog_positive_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Set"
android:background="#dde5ad"
/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center"
android:gravity="center">
<Button
android:id="@+id/dialog_negative_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="No"
android:background="#dde5ad"
/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="end"
android:gravity="end">
<Button
android:id="@+id/dialog_negative_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="No"
android:background="#dde5ad"
/>
</LinearLayout>
</LinearLayout>
在使用LinearLayout的时候有一个LayoutWeights的概念,涉及面比较广,建议大家看一下官方文档LinearLayout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#dde5ad"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<Button
android:id="@+id/dialog_positive_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#dde5ad"
android:text="Set" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginTop="14dp"
android:layout_marginBottom="14dp"
android:background="#000" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#dde5ad"
android:text="No" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginTop="14dp"
android:layout_marginBottom="14dp"
android:background="#000" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#dde5ad"
android:text="No" />
我正在开发一个 android 应用程序来学习。 并面临一些问题。 不能设置两个按钮中心。 我已经用这个设置了两个按钮 现在我需要在这两个中间的另一个按钮 视图将与 this
一样<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="start"
android:gravity="start">
<Button
android:id="@+id/dialog_positive_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Set"
android:background="#dde5ad" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="end"
android:gravity="end">
<Button
android:id="@+id/dialog_negative_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="No"
android:background="#dde5ad" />
</LinearLayout>
我需要这两个的中心。
使用layout_weight
<?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:layout_weight="3"
android:orientation="horizontal">
<Button
android:id="@+id/dialog_positive_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#dde5ad"
android:text="Set" />
<Button
android:id="@+id/dialog_neutral_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="#dde5ad"
android:layout_weight="1"
android:text="your text" />
<Button
android:id="@+id/dialog_negative_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="#dde5ad"
android:layout_weight="1"
android:text="No" />
</LinearLayout>
您需要为此使用 layout_weight
& layout_gravity
:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:layout_weight="1"
android:gravity="start"
android:orientation="vertical">
<Button
android:id="@+id/dialog_positive_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#dde5ad"
android:text="Set" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#dde5ad"
android:text="Set" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="end"
android:gravity="end"
android:orientation="vertical">
<Button
android:id="@+id/dialog_negative_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#dde5ad"
android:text="No" />
</LinearLayout>
</LinearLayout>
您可以摆脱不必要的线性布局。如果你只需要在一行中添加三个按钮,你可以只在水平 LinearLayout
上这样做:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/dialog_positive_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Set"
android:background="#dde5ad"
/>
<!-- this is your new Button -->
<Button
android:id="@+id/new_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Set"
android:background="#dde5ad"
/>
<Button
android:id="@+id/dialog_negative_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="No"
android:background="#dde5ad"
/>
</LinearLayout>
另请注意,嵌套 lienar 布局可能会影响您的性能。如果您需要进行复杂的布局,请尝试 constraint layout
希望对您有所帮助,编码愉快!
您应该尝试为每个按钮设置 android:layout_weight="1",每个按钮占用可用空间的 1/3宽度,使它们在水平方向上均匀分布。请参阅下面的布局,您有 2 个选项来获得相似的结果,一个使用 gravity 而另一个 layout_weight。最终结果类似,但带有 layout_weight="1" 的选项更可取:
<LinearLayout
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/dialog_positive_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Set"
android:background="#dde5ad"
/>
<Button
android:layout_marginStart="20dp"
android:id="@+id/center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Center"
android:background="#dde5ad"
/>
<Button
android:layout_marginStart="20dp"
android:id="@+id/dialog_negative_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="No"
android:background="#dde5ad"
/>
</LinearLayout>
或者你有第二个选项:
<LinearLayout
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/dialog_positive_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Set"
android:background="#dde5ad"
/>
<Button
android:layout_weight="1"
android:layout_marginStart="20dp"
android:id="@+id/center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Center"
android:background="#dde5ad"
/>
<Button
android:layout_weight="1"
android:layout_marginStart="20dp"
android:id="@+id/dialog_negative_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="No"
android:background="#dde5ad"
/>
</LinearLayout>
使用这个 -
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="start"
android:gravity="start">
<Button
android:id="@+id/dialog_positive_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Set"
android:background="#dde5ad"
/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center"
android:gravity="center">
<Button
android:id="@+id/dialog_negative_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="No"
android:background="#dde5ad"
/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="end"
android:gravity="end">
<Button
android:id="@+id/dialog_negative_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="No"
android:background="#dde5ad"
/>
</LinearLayout>
</LinearLayout>
在使用LinearLayout的时候有一个LayoutWeights的概念,涉及面比较广,建议大家看一下官方文档LinearLayout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#dde5ad"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<Button
android:id="@+id/dialog_positive_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#dde5ad"
android:text="Set" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginTop="14dp"
android:layout_marginBottom="14dp"
android:background="#000" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#dde5ad"
android:text="No" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginTop="14dp"
android:layout_marginBottom="14dp"
android:background="#000" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#dde5ad"
android:text="No" />