为单屏禁用Google登录过渡

问题描述

Flutter中使用googleSignIn()方法登录后,屏幕上出现了意外的过渡(示例:https://i.stack.imgur.com/CWIhL.gif)。

这不是Android模拟器的小故障,它也发生在我的物理设备上。

我发现的唯一解决方案是将以下行添加到styles.xml以禁用Transition:

<item name="android:windowAnimationStyle">@null</item>

但是,我不想禁用整个应用程序的动画。如何仅在登录屏幕上将其禁用?我不知道为整个应用程序禁用所有windowAnimationStyle可能会发生什么副作用?

解决方法

您也许可以为单个视图创建样式,或者为特定活动或视图层次结构创建主题。以下链接给出了一个示例:https://gist.github.com/cesarferreira/38bf26a68317ac15f1dc

<!-- Developer should create a style -->
<style name="noAnimTheme" parent="android:Theme">
  <item name="android:windowAnimationStyle">@null</item>
</style>


<!-- Then in manifest set it as theme for activity or whole application. -->

<activity android:name=".ui.ArticlesActivity" android:theme="@style/noAnimTheme">
</activity>

此处提供了有关样式和主题的更多信息:https://developer.android.com/guide/topics/ui/look-and-feel/themes#Styles

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...