首先,我的状态栏背景设置为深棕色,导航栏背景为默认黑色.我正在使用Material light主题.
我正在使用ActivityOptions.makeSceneTransitionAnimation默认转换启动一个新活动,我注意到状态和导航栏都会短暂淡化为白色然后再返回正确的颜色.
根据文件:
要获得转换的完整效果,必须在调用和被调用的活动上启用窗口内容转换.否则,调用活动将开始退出转换,但随后您将看到窗口转换(如缩放或淡入淡出)
我正在使用getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);调用和被调用的活动.
同样,如果我将输入转换更改为幻灯片,状态和导航栏会短暂地具有带白色背景的幻灯片转换.
如何在活动场景动画过渡期间阻止状态栏和导航栏动画?
android android-5.0-lollipop activity-transition shared-element-transition
我在Lollipop的共享元素转换中看到奇怪的事情.共享元素在开始制作动画之前就会闪烁(请参阅视频https://www.youtube.com/watch?v=DCoyyC_S-9A)
我不知道为什么会这样.然而,当我添加<item name="android:windowSharedElementsUseOverlay">false</item>到我的主题时,我看不到闪烁,但过渡看起来并不好(看起来只有一半是动画"隐藏"动画的后半部分).
其他过渡设置:
<item name="android:windowActivityTransitions">true</item>
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
<item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
<item name="android:windowSharedElementExitTransition">@android:transition/move</item>
Run Code Online (Sandbox Code Playgroud)
我正在使用ActivityCompat和ActivityOptionsCompat开始活动:
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(ActivityMain.this,
new Pair<View, String>(playButton, getString(R.string.translation_control_button)),
new Pair<View, String>(findViewById(R.id.playerImage), getString(R.string.translation_artwork)));
ActivityCompat.startActivity(this, pendingIntent, options.toBundle());
Run Code Online (Sandbox Code Playgroud)
第一项活动:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/main_container">
<include layout="@layout/toolbar"/>
<FrameLayout
android:id="@+id/activity_main_fragment_container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"></FrameLayout>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="45dp"
android:padding="7dp"
android:stretchColumns="*"
android:id="@+id/player_toolboxTable"
android:background="?colorPrimary">
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/player_toolbox">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:id="@+id/player_fav"
android:src="@drawable/rating_not_important"
android:onClick="playerFav"
android:background="@drawable/button_selector_semi_white"
/>
<ImageView
android:src="@drawable/av_pause_over_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:id="@+id/player_play"
android:onClick="playerPlay"
android:background="@drawable/button_selector_semi_white"
android:transitionName="@string/translation_control_button"
/> …Run Code Online (Sandbox Code Playgroud) android android-transitions android-5.0-lollipop activity-transition shared-element-transition
我有一项活动.启动模式是singleTask,我实现onNewIntent.当我在活动打开时发送启动此活动的意图(标志为NEW_TASK和RESET_TASK_IF_NEEDED)时,屏幕会闪烁,然后显示相同的活动.
为什么会发生这种情况?我认为singleTask应该足以确保将新意图传递给onNewIntent,而不是系统为我的活动启动新任务或任何事情.当我做以下任何一件事时,闪烁消失了:
我很想知道发生了什么,以及我能做些什么来克服闪烁(我真的不想改变启动模式或启动意图标志,如果可能的话).基本上,有什么理由不适用吗?
请注意,即使屏幕闪烁,我也会获得onNewIntent.
android ×3