Я играю с новым Transition Api
и хотел бы добиться хорошего перехода между двумя действиями. Оба действия содержат AppBar
с вкладкой ViewPager
.
Когда я запускал переход в первый раз, AppBar
исчезал и снова появлялся между двумя переходами активности, так что казалось, что он мигает:
Чтобы решить эту проблему, я попытался исключить AppBar
из перехода активности, вызвав transition.excludeTarget()
:
// 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
:
Вот как оба макета выглядят в целом:
<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>
Есть ли способ исключить представление/макет из анимации перехода, но включить его дочерние элементы? Я пытался добавить ViewPager Tabs
, вызвав transition.addTarget(mTabs);
, но это не помогло.