Эффект мигания на нижней панели приложения при одновременном изменении потрясающего выравнивания и меню - PullRequest
3 голосов
/ 03 октября 2019

У меня есть нижняя панель приложения с центрированным значком и меню. Я хочу изменить fab выравнивание и меню при выборе элемента в моем списке. Изменения работают отлично, но анимация показывает мигающие эффекты.

Я пытался использовать обработчик для изменения меню, когда закончена потрясающая анимация (300 мс согласно классу нижней панели приложения), но побочный эффект остается

Мой макет:

<androidx.coordinatorlayout.widget.CoordinatorLayout
    ...>

    <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
        ...>

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/home_expenseList"
            .../>

    </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>


    <com.google.android.material.bottomappbar.BottomAppBar
        app:layout_dodgeInsetEdges="bottom"
        android:id="@+id/appBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        app:hideOnScroll="true"
        app:navigationIcon="@drawable/ic_menu"
        app:layout_scrollFlags="scroll|enterAlways"/>

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/appBar_fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_add"
        app:tint="@null"
        app:layout_anchor="@id/appBar" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

Мой код:

override fun onSelectionModeChange(isActive: Boolean) {
        selectionIsActive = isActive
        when (isActive) {
            true -> {
                appBar.navigationIcon = null
                appBar.replaceMenu(R.menu.bottom_app_bar_selection_menu)
                appBar.fabAlignmentMode = BottomAppBar.FAB_ALIGNMENT_MODE_END
                appBar_fab.setImageDrawable(getDrawable(R.drawable.ic_close))
            }
            false -> {
                appBar.navigationIcon = getDrawable(R.drawable.ic_menu)
                appBar.replaceMenu(R.menu.bottom_app_bar_menu)
                appBar.fabAlignmentMode = BottomAppBar.FAB_ALIGNMENT_MODE_CENTER
                appBar_fab.setImageDrawable(getDrawable(R.drawable.ic_add))
            }
        }
    }

Я ожидал такую ​​анимацию: https://storage.googleapis.com/spec-host/mio-staging%2Fmio-components%2F1568406561463%2Fassets%2F1KJSld6h82fzkcafrHCDFPOITibpWxF-5%2Fbehavior-layout-primary.mp4

У меня есть: Боттомбарная анимация

Спасибо

...