如何在 LinearLayout 中将两个 FloatingActionButton 对齐?
How to align two FloatingActionButtons together in a LinearLayout?
所以我试图在 RelativeLayout
内的 LinearLayout
中对齐两个 FloatingActionButton
。
像这样:
<LinearLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/submitBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/DeleteBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
但我希望当您将它们放在 LinearLayout
中时,它们的行为与 TextView
等任何其他元素一样。
我的意思是我希望它们每个都占 LinearLayout
宽度的一半。
但他们会坚持在 LinearLayout
的起点,无论我怎么尝试他们都不会移动。
我尝试对每个人都使用 android:layout_width="1"
但没有成功,他们根本不会移动他们只是在 LinearLayout
开始时粘在一起。
外观如下:
如果有任何建议,我将非常高兴!提前致谢。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/submitBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/DeleteBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
请使用下面这个 XML 代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="2"
>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/submitBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="right"
android:gravity="right"
>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/DeleteBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
在 LinearLayout 中你可以设置 layout_weight=1 共享父级:
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/submitBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
实现它的一种方法是这样的...
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2">
<FrameLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/submitBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:srcCompat="@drawable/ic_add_black_24dp" />
</FrameLayout>
<FrameLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/deleteButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:srcCompat="@drawable/ic_delete_forever_black_24dp" />
</FrameLayout>
</LinearLayout>
看起来像这样....
您可以使用 layout_gravity 来根据需要对齐它们...
通过一些简单的数学运算,您可以与这段代码完美对齐,只需复制粘贴:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="5">
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/submitBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/DeleteBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
</RelativeLayout>
</LinearLayout>
完全居中,中心无大间隙:
所以我试图在 RelativeLayout
内的 LinearLayout
中对齐两个 FloatingActionButton
。
像这样:
<LinearLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/submitBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/DeleteBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
但我希望当您将它们放在 LinearLayout
中时,它们的行为与 TextView
等任何其他元素一样。
我的意思是我希望它们每个都占 LinearLayout
宽度的一半。
但他们会坚持在 LinearLayout
的起点,无论我怎么尝试他们都不会移动。
我尝试对每个人都使用 android:layout_width="1"
但没有成功,他们根本不会移动他们只是在 LinearLayout
开始时粘在一起。
外观如下:
如果有任何建议,我将非常高兴!提前致谢。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/submitBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/DeleteBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
请使用下面这个 XML 代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="2"
>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/submitBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="right"
android:gravity="right"
>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/DeleteBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
在 LinearLayout 中你可以设置 layout_weight=1 共享父级:
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/submitBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
实现它的一种方法是这样的...
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2">
<FrameLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/submitBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:srcCompat="@drawable/ic_add_black_24dp" />
</FrameLayout>
<FrameLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/deleteButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:srcCompat="@drawable/ic_delete_forever_black_24dp" />
</FrameLayout>
</LinearLayout>
看起来像这样....
您可以使用 layout_gravity 来根据需要对齐它们...
通过一些简单的数学运算,您可以与这段代码完美对齐,只需复制粘贴:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="5">
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/submitBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/DeleteBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
</RelativeLayout>
</LinearLayout>
完全居中,中心无大间隙: