在我的应用程序中,我有一个屏幕,在协调器布局中有一个晶圆厂。当显示小吃店时,工厂会随着小吃店的出现而向上移动(这是我所期望的)。 然而,在另一个屏幕上,我的 fab 也在一个协调器中,但是在这个 layoyt 上我有一个占据全屏大小的 recyclerview,所以我在我的 fab 上设置了这个属性
app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior"
以使其在用户滚动时隐藏和显示通过回收商,但问题是现在,当小吃店出现时,它显示在晶圆厂上方(深度),隐藏它。
我的代码是这样的:
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".presentation.features.lead.list.LeadsListFragment">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_leads"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layoutAnimation="@anim/slide_in_animation"
android:orientation="vertical"
android:visibility="gone"
tools:itemCount="6"
tools:listitem="@layout/item_lead" />
</FrameLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/add_fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="16dp"
android:contentDescription="@string/fab_add_lead_desc"
android:scaleX="0"
android:scaleY="0"
android:visibility="invisible"
app:backgroundTint="@color/colorPrimary"
app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior"
app:srcCompat="@drawable/ic_add"
app:tint="@android:color/white" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
我这样展示我的零食:
我设法稍微更改了我的代码,并使小吃店出现在晶圆厂上方(在 Y 轴上)。稍微好一点,但仍然不是我想要的动画(我想保留两个动画)。
有没有办法做这样的事情?
我也试过在我的fab上设置anchorview,但还是没有给我想要的,因为fab现在在屏幕的左上角:
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".presentation.features.lead.list.LeadsListFragment">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_leads"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layoutAnimation="@anim/slide_in_animation"
android:orientation="vertical"
android:visibility="gone"
tools:itemCount="6"
tools:listitem="@layout/item_lead" />
<ProgressBar
android:id="@+id/spinner_recycler"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminateTint="@color/link"
android:indeterminateTintMode="src_atop" />
<TextView
android:id="@+id/message_error"
style="@style/TextAppearance.RecyclerViewMessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginHorizontal="24dp"
android:text="@string/message_internal_error"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/message_empty_list"
style="@style/TextAppearance.RecyclerViewMessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginHorizontal="24dp"
android:text="@string/message_no_lead_added"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/add_fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:contentDescription="@string/fab_add_lead_desc"
android:scaleX="0"
android:scaleY="0"
android:visibility="invisible"
app:backgroundTint="@color/colorPrimary"
app:layout_anchor="@id/content_view"
app:layout_anchorGravity="bottom|right"
app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior"
app:srcCompat="@drawable/ic_add"
app:tint="@android:color/white" />
</FrameLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
Snackbar.make(binding.addFab, R.string.permission_needed, Snackbar.LENGTH_LONG).apply { anchorview = binding.contentView }.show()
我用的素材库版本是1.8.0:
implementation 'com.google.android.material:material:1.8.0'