相关疑难解决方法(0)

如何在活动场景动画过渡期间阻止状态栏和导航栏动画?

首先,我的状态栏背景设置为深棕色,导航栏背景为默认黑色.我正在使用Material light主题.

我正在使用ActivityOptions.makeSceneTransitionAnimation默认转换启动一个新活动,我注意到状态和导航栏都会短暂淡化为白色然后再返回正确的颜色.

根据文件:

要获得转换的完整效果,必须在调用和被调用的活动上启用窗口内容转换.否则,调用活动将开始退出转换,但随后您将看到窗口转换(如缩放或淡入淡出)

我正在使用getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);调用和被调用的活动.

同样,如果我将输入转换更改为幻灯片,状态和导航栏会短暂地具有带白色背景的幻灯片转换.

如何在活动场景动画过渡期间阻止状态栏和导航栏动画?

android android-5.0-lollipop activity-transition shared-element-transition

125
推荐指数
1
解决办法
4万
查看次数

Android棒棒糖共享元素转换闪烁/闪烁

我在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

20
推荐指数
1
解决办法
1万
查看次数

Android - 启动意图打开已打开的活动时屏幕闪烁

我有一项活动.启动模式是singleTask,我实现onNewIntent.当我在活动打开时发送启动此活动的意图(标志为NEW_TASK和RESET_TASK_IF_NEEDED)时,屏幕会闪烁,然后显示相同的活动.

为什么会发生这种情况?我认为singleTask应该足以确保将新意图传递给onNewIntent,而不是系统为我的活动启动新任务或任何事情.当我做以下任何一件事时,闪烁消失了:

  • 将启动模式更改为singleTop;
  • 将标志Intent.FLAG_ACTIVITY_CLEAR_TOP添加到启动意图.

我很想知道发生了什么,以及我能做些什么来克服闪烁(我真的不想改变启动模式或启动意图标志,如果可能的话).基本上,有什么理由不适用吗?

请注意,即使屏幕闪烁,我也会获得onNewIntent.

android android-intent

6
推荐指数
0
解决办法
939
查看次数