在整个App中将android方向锁定为横向?

时间:2012-02-14 11:31:22

标签: android

我已根据此检查了很多问题,但我仍然无法通过应用程序将屏幕方向锁定为横向。 ?

<activity android:screenOrientation="landscape"
      android:name=".BasicLayoutCheckActivity"
        />

如果使用其他活动,这对我来说不起作用

6 个答案:

答案 0 :(得分:12)

在Manifest中,您可以将screenOrientation设置为landscape for all the activities。 您已放置one activity,因此其他活动均以纵向展开,因此fixing设置all your activities with orientation作为您的第一项活动。 它在XML中看起来像这样:

<activity android:name=".BasicLayoutCheckActivity" android:screenOrientation="landscape"></activity>

答案 1 :(得分:5)

您还可以在onCreate()方法中使用以下内容:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

问候!

答案 2 :(得分:4)

嘿检查一下在androidmanifest文件里面的活动添加它

<activity
android:screenOrientation="landscape"
android:configChanges="keyboard|keyboardHidden|orientation">

答案 3 :(得分:1)

必须将orientation属性设置为应用程序的每个单独活动。

答案 4 :(得分:0)

另外一项活动是什么意思?配置是每个活动。假设您的应用程序有三个活动,那么您必须将每个活动指定为格局。

答案 5 :(得分:0)

为避免必须为每个活动执行此操作,您可以在自定义应用程序类中注册活动生命周期回调(如果有的话)。

像...一样的东西。

public class MyApplication extends Application {

   @Override
    public void onCreate() {
        super.onCreate();

        //Lock orientation in landscape for all activities, yaay!
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
                 activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);                  
            }

            @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 outState) {

            }

            @Override
            public void onActivityDestroyed(Activity activity) {

            }
        });
    }
}