如何在Android的Firebase UI中将方向设置为纵向

时间:2018-06-22 06:16:52

标签: android firebase firebase-authentication firebaseui

我正在使用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>

不起作用。他们有什么办法将其限制为纵向。

4 个答案:

答案 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);