【发布时间】:2023-03-16 04:02:01
【问题描述】:
我正在使用新的Transition Api,并希望在两个活动之间实现良好的过渡。这两个活动都包含一个AppBar 和一个标签式ViewPager。
当我第一次运行转换时,AppBar 淡出并再次出现在两个活动转换之间,所以它看起来像是在闪烁:
为了解决我试图通过调用transition.excludeTarget()从活动转换中排除AppBar:
// in onCreate() of the calling activity
Transition transition = new Fade();
transition.excludeTarget(mAppBarLayout, true);
getWindow().setExitTransition(transition);
getWindow().setReenterTransition(transition);
// in onCreate() of the called activity
Transition transition = new Fade();
transition.excludeTarget(mAppBarLayout, true);
getWindow().setEnterTransition(transition);
getWindow().setReturnTransition(transition);
这段代码解决了闪烁问题,但引入了一个新问题:ViewPager Tabs 不再有交叉淡入淡出动画:
这是两个布局在generell中的样子:
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:background="@color/toolbar_background"
>
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:titleTextColor="@color/toolbar_icons"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/Base.ThemeOverlay.AppCompat.Dark"
/>
<com.ogaclejapan.smarttablayout.SmartTabLayoutLight
android:layout_width="match_parent"
android:layout_height="48dp"
/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
/>
</android.support.design.widget.CoordinatorLayout>
有没有办法从过渡动画中排除视图/布局但包含其子项?我尝试通过调用transition.addTarget(mTabs); 来添加ViewPager Tabs,但没有任何区别。
【问题讨论】:
标签: android android-transitions appbar android-appbarlayout