gpt4 book ai didi

Android Activity 转换 - Window.excludeTarget() 阻止 subview 的转换

转载 作者:行者123 更新时间:2023-12-05 07:51:14 24 4
gpt4 key购买 nike

我正在尝试使用新的 Transition Api 并希望在两个 Activity 之间实现良好的过渡。这两个 Activity 都包含一个 AppBar 和一个标签式 ViewPager

当我第一次运行转换时,AppBar 在两个 Activity 转换之间淡出并再次出现,所以它看起来像是在闪烁:

enter image description here enter image description here

为了解决这个问题,我尝试通过调用 transition.excludeTarget() 从 Activity 转换中排除 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 不再有交叉淡入淡出动画:

enter image description here

这是两种布局在 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>

有没有办法从过渡动画中排除 View /布局但包含其子项?我尝试通过调用 transition.addTarget(mTabs); 添加 ViewPager Tabs,但没有任何效果。

最佳答案

您应该只排除您的工具栏而不是整个 AppBarLayout。

transition.excludeTarget(toolbar, true);

关于Android Activity 转换 - Window.excludeTarget() 阻止 subview 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35205664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com