答案 0 :(得分:1)
这可以使用自定义工具栏作为 supportActionBar
来完成。
而不是使用 layout_anchor
放置 FAB
,我们可以使用 ConstraintLayout
作为根视图将其约束到工具栏。
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</com.google.android.material.appbar.AppBarLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="64dp"
android:layout_marginRight="64dp"
android:src="@drawable/ic_baseline_play_arrow_24"
app:layout_constraintBottom_toBottomOf="@id/appbar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/appbar" />
</androidx.constraintlayout.widget.ConstraintLayout>
并确保将 AppTheme 与 NoActionBar 一起使用,例如 Theme.MaterialComponents.DayNight.NoActionBar
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
然后在活动中设置 supportActionBar
:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val toolbar = findViewById<Toolbar>(R.id.toolbar)
setSupportActionBar(toolbar)
}
预览:
答案 1 :(得分:0)
我尝试了一个解决方案,但它不是直接解决方案,希望它会有所帮助
在根坐标布局中,在它的顶部创建一个子空布局,并将背景颜色更改为动作栏的相同颜色,然后新的空布局将直接在动作栏之后,它将显示为操作栏并根据需要给它适当的高度。你的代码将是那样的
空布局:
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:id="@+id/tst"
android:background="@android:color/black"
android:layout_height="50dp"/>
您可以根据需要增加高度,但这是我设备的最佳高度
浮动按钮:
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_anchor="@id/tst"
app:layout_anchorGravity="top|center"
/>