我正在使用Firebase UI进行身份验证,如果是ioS,方向不是问题, 如果是android系统,则手机的屏幕方向会自动旋转,firebase用户界面也会旋转。
使用样式将自定义UI设置为Firebase UI
<style name="FirebaseLoginTheme" parent="FirebaseUI">
<item name="android:screenOrientation">portrait</item>
<item name="android:windowContentOverlay">@null</item>
</style>
不起作用。他们有什么办法将其限制为纵向。
答案 0 :(得分:1)
在清单文件中添加方向,如下所示:
export default withStyles(styles)(Sidebar);
您的风格
<activity
android:name=".YourActivity"
android:screenOrientation="portrait"
android:theme="@style/FirebaseLoginTheme" />
答案 1 :(得分:0)
我已经通过在每个活动中以编程方式设置人像模式来解决此问题。 如果您定位到Android 8+,则可能会从com.firebase.ui.auth.ui活动中收到“仅全屏活动可以请求定向”错误,这就是为什么我使用try catch但您的登录活动仍被锁定为纵向模式。
将其添加到您的应用程序类中,并记住将其包含在清单的应用程序标记(android:name=".MyApplication"
)中
public class MyApplication extends Application{
public MyApplication() {
}
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(Activity activity, Bundle bundle) {
try {
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}catch (Exception e){
}
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
});
}
}
答案 2 :(得分:0)
将此添加到您的清单:
<activity
android:screenOrientation="landscape"
android:name="com.firebase.ui.auth.KickoffActivity"
tools:replace="android:theme"
android:theme="@style/AppTheme" />
仅供参考,这是我的AppTheme(在style.xml中存在)
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowFullscreen">true</item>
</style>
答案 3 :(得分:0)
只需在 setLockOrientation(true)
对象上调用 AuthUI.SignInIntentBuilder
例如:
startActivityForResult(auth.createSignInIntentBuilder().setAvailableProviders(idProviders).setLockOrientation(true).build(), RC_SIGN_IN);