我正在使用Firebase Auth UI,所以我使用startActivityForResult
。
我调用了活动A中提到的方法,并且登录屏幕正确显示。
问题在于,在调用上述方法之前,先前的活动(活动A)显示了几秒钟,这不是所希望的,此外,当您按下“后退”按钮时,您可以看到活动A。 / p>
startActivityForResult(
// Get an instance of AuthUI based on the default app
AuthUI.getInstance()
.createSignInIntentBuilder()
.setAuthMethodPickerLayout(buildMethodPickerLayout())
.setAvailableProviders(getAuthProviders())
.setIsSmartLockEnabled(!BuildConfig.DEBUG)
.setTheme(R.style.AppThemeFirebaseAuth)
.build(),
RC_SIGN_IN);
我知道我可以使用onActivityResult在返回时退出应用程序,但这不能解决第一个问题,我还想知道一个更清洁的选项。
我想在第一个屏幕上显示“登录”布局。
答案 0 :(得分:0)
如果您这样设置样式,则在开始和退出时将看不到Firebase AuthUI活动的闪烁/动画-您将看到“登录”布局作为第一个屏幕。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="android:windowBackground">@drawable/appBackground</item>
<item name="android:windowDisablePreview">true</item>
<item name="android:windowAnimationStyle">@null</item>
</style>
<style name="LoginTheme" parent="FirebaseUI">
...
<item name="android:windowBackground">@drawable/appBackground</item>
</style>
但是最好的选择是构建自定义登录屏幕,以不使用Firebase活动。