锚定到BottomAppBar的FloatingActionButton在应用程序恢复时消失
Posted
技术标签:
【中文标题】锚定到BottomAppBar的FloatingActionButton在应用程序恢复时消失【英文标题】:FloatingActionButton, which is anchored to BottomAppBar, disappears when the application is resumed 【发布时间】:2020-09-18 13:38:57 【问题描述】:我的 xml 文件:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_content"
android:layout_
android:layout_
android:background="@color/layout_white"
android:fitsSystemWindows="true">
<androidx.constraintlayout.motion.widget.MotionLayout
android:id="@+id/motion_layout"
android:layout_
android:layout_
app:layoutDescription="@xml/scene_header"
app:layout_scrollFlags="scroll|enterAlways|snap|exitUntilCollapsed">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_
android:layout_
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<include
android:id="@+id/plantRecyclerView"
layout="@layout/plant_rv_main"
android:layout_
android:layout_
android:clipToPadding="false"
app:layout_constraintTop_toBottomOf="@id/recyclerView" />
</androidx.constraintlayout.motion.widget.MotionLayout>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_
android:layout_
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintLeft_toLeftOf="parent">
<com.google.android.material.bottomappbar.BottomAppBar
android:id="@+id/bottom_appbar"
style="@style/Widget.MaterialComponents.BottomAppBar"
android:layout_
android:layout_
android:layout_gravity="bottom"
app:fabAlignmentMode="center"
app:fabAnimationMode="scale"
app:fabCradleRoundedCornerRadius="50dp"
app:navigationIcon="@drawable/ic_menu_black_24dp" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/addPlantFab"
android:layout_
android:layout_
android:onClick="@() -> addPlantClick.onAddPlantClick()"
android:src="@drawable/add_plant"
app:fabSize="normal"
app:layout_anchor="@id/bottom_appbar"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
使用此 xml,当我通过单击主页按钮暂停应用程序并再次恢复应用程序时,FloatingActionButton 会消失。但是,当 MotionLayout 过程完成后,FloatingActionButton 会再次可见。
完成意味着进程达到0.0或1.0
另外,我认为问题可能来自应用程序主题。所以,这是我在 styles.xml 中的应用程序主题:
<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar.Bridge">
我使用 Bridge 是因为我在开发阶段更改了应用程序主题。我不知道为什么会出现这种行为。有没有人面临这样的情况?我的错误是什么?
感谢您的回答...
【问题讨论】:
你能在 github 上分享一个简单的项目吗? 好的,但我需要几分钟谢谢。 @azizbekian 您好,我在 github 上与该设置共享了简单项目,这是存储库 github.com/kadir-tas/FabMotionLayoutSimpleProject@azizbekian 的链接 【参考方案1】:它与应用程序主题有关。有关更多信息,请评论此答案。
【讨论】:
以上是关于锚定到BottomAppBar的FloatingActionButton在应用程序恢复时消失的主要内容,如果未能解决你的问题,请参考以下文章
如何将 UIAlertController 操作表锚定到特定单元格 UICollectionView?
为啥锚定到 ApplicationWindow 的项目的大小为零?