java - 活动在使用共享元素转换后闪烁
问题描述
嗨,我正在开发一个应用程序,在该应用程序中,我使用共享元素转换为登录时的进入和退出转换设置动画,并为一个图像视图和两个文本视图设置动画,但我的问题是,当我单击注册按钮时,视图根本没有动画注册活动闪烁两次,没有动画发生,而且注册活动中的图像失去了它的形状,所以我不知道我哪里出错了,因为我在两个活动中都给出了相同的过渡名称,但问题仍然存在,所以我会很感激一些帮助。这是我的styles.xml
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowEnableSplitTouch">false</item>
<item name="android:splitMotionEvents">false</item>
<!-- Transition -->
<item name="android:windowContentTransitions" tools:targetApi="21">true</item>
<item name="android:windowEnterTransition" tools:targetApi="21">@android:transition/fade
</item>
<item name="android:windowExitTransition" tools:targetApi="21">@android:transition/fade
</item>
<item name="android:windowActivityTransitions">true</item>
<item name="android:windowSharedElementEnterTransition" tools:targetApi="21">
@android:transition/move
</item>
<item name="android:windowSharedElementExitTransition" tools:targetApi="21">
@android:transition/move
</item>
</style>
</resources>
我的登录活动
public void gotoregister(View view) {
Intent intent = new Intent(LoginActivity.this,RegisterActivity.class);
Pair[] pairs = new Pair[3];
pairs[0] = new Pair<View,String>(text_login,getResources().getString(R.string.login_text_transition));
pairs[1] = new Pair<View,String>(login_page_curve,getResources().getString(R.string.transition_name_signup));
pairs[2] = new Pair<View,String>(register_text,getResources().getString(R.string.register_text_transition));
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation
(LoginActivity.this,pairs);
startActivity(intent,optionsCompat.toBundle());
finish();
//overridePendingTransition(R.anim.bottom_up,R.anim.bottom_down);
}
解决方案
这在我的代码中有效。
样式.xml
<!-- Base application theme. -->
s<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowDisablePreview">true</item>
<item name="android:windowEnableSplitTouch">false</item>
<item name="android:splitMotionEvents">false</item>
<item name="android:windowAnimationStyle">@style/CustomActivityAnimation</item>
</style>
<style name="AppTheme.NoActionBarMain">
<item name="windowActionBar">false</item>
<item name="android:windowDisablePreview">true</item>
<item name="windowNoTitle">true</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowEnableSplitTouch">false</item>
<item name="android:splitMotionEvents">false</item>
<item name="android:colorForeground">@color/foreground_material_light</item>
</style>
样式.xml(v21)
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowEnableSplitTouch">false</item>
<item name="android:splitMotionEvents">false</item>
</style>
推荐阅读
- python - 编写一个计算文件中单词首字母出现频率的作业。因此,如果有三个以“c”开头的单词,则答案将是“c 3”
- solidity - 元掩码未连接到 localhost 8545
- woocommerce - 在 WPML 中获取原始版本的帖子 ID
- terraform - 如何在 Terraform 中提示用户信息以获取地图类型变量中的键
- android - 通过 Firebase 的时间戳在自定义信息窗口中显示最新信息
- ssas - 无法将 SSAS 服务器连接到 Power BI
- wordpress - 如何阻止某些标签在 WordPress 中创建
- python - KeyError: 'Host' - 如何从 AWS Lambda 中的 URL 访问 JSON 正文
- react-query - react-query invalidateQueries 不适用于前缀/ URL
- kubernetes - 主机关闭时如何忽略终止GracePeriod?