共享元素过渡重叠 BottomNavigationView

Posted

技术标签:

【中文标题】共享元素过渡重叠 BottomNavigationView【英文标题】:Shared Element Transition overloapping BottomNavigationView 【发布时间】:2019-08-07 07:01:24 【问题描述】:

我在我的 recyclerView 的 onItemClick 方法中使用 SharedElement Transition 去 DetailsActivity。但是,当单击底部的项目时,它首先位于顶部操作 BottomNavigationView 然后发生转换。 OnBackPressed 是一样的。它还在模拟器中的机械键之上。如何解决?

<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_
    android:layout_
    tools:context=".MainActivity.MainActivity"
    android:id="@+id/main_activity"
   >

<android.support.design.widget.CoordinatorLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_
        android:layout_
        android:id="@+id/childofMain"
        app:layout_constraintBottom_toTopOf="@+id/bottom_navigation_view"
        android:layout_marginTop="0dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_below="@+id/bottom_navigation_view">

    <android.support.design.widget.AppBarLayout
            android:layout_
            android:layout_
            android:background="@null"
            android:layout_below="@+id/mainRecyclerView"

    >

        <android.support.design.widget.CollapsingToolbarLayout
                android:layout_
                android:layout_
                app:titleEnabled="false"
                app:expandedTitleMarginBottom="94dp"
                app:layout_scrollFlags="scroll|exitUntilCollapsed"
                app:contentScrim="?colorPrimary"
                android:layout_below="@+id/mainRecyclerView"
        >

            <ImageView
                    android:layout_
                    android:layout_
                    android:scaleType="fitXY"
                    android:id="@+id/toolbar_image"
                    app:layout_collapseMode="parallax"

            />

            <ImageView android:layout_
                       android:layout_
                       android:id="@+id/mainOdulluDUzyazi"
                       android:layout_marginTop="40dp"
                       android:scaleType="fitCenter"
                       android:layout_gravity="center|top"
                       app:layout_collapseMode="parallax"
            />

            <TextView android:layout_
                      android:layout_
                      android:id="@+id/trendyarismalar"
                      android:text="Trend Yarışmalar"
                      android:textColor="@color/white"
                      android:layout_gravity="center|top"
                      android:layout_marginTop="100dp"
                      android:textSize="20sp"
                      android:textStyle="bold"
                      app:layout_collapseMode="parallax"/>


        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <android.support.v7.widget.RecyclerView
            android:layout_
            android:layout_
            android:id="@+id/mainRecyclerView"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            android:background="@null"
            android:layout_gravity="bottom"
            app:behavior_overlapTop="150dp"
            android:layout_marginRight="15dp"
            android:layout_marginLeft="15dp"
            android:layout_below="@+id/bottom_navigation_view"
    />

</android.support.design.widget.CoordinatorLayout>

<com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx
        android:id="@+id/bottom_navigation_view"
        android:layout_
        android:layout_
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:menu="@menu/bottom_navigation_menu"
        android:background="?android:attr/windowBackground"
        app:itemIconTint="@drawable/nav_item_color_state"
        app:itemIconSize="25dp"
        app:layout_constraintCircleRadius="5dp"
        app:labelVisibilityMode="unlabeled"


>
</com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx>

`

【问题讨论】:

【参考方案1】:

你可以试试这个;

<item name="android:windowSharedElementsUseOverlay">false</item>

注意:将这一行放到您的应用程序基础主题中的 styles.xml 文件中。

【讨论】:

以上是关于共享元素过渡重叠 BottomNavigationView的主要内容,如果未能解决你的问题,请参考以下文章

BottomNavigation 下的 Snackbar

Android共享元素过渡——防止共享元素被绘制

TextInputLayout 共享元素过渡问题

android-如何从标记位图开始共享元素过渡?

如何实现与视频的共享元素过渡

具有 scaleType centerCrop 过渡的共享元素跳跃