在配置更改时锁定屏幕纵向

时间:2012-12-17 08:17:02

标签: android landscape-portrait

我有一个带布尔值的简单活动。我希望它从纵向更改为横向,当且仅当该布尔值为假时(当然,仅当屏幕改变方向时)。

我试过了:

    @Override
    public void onConfigurationChanged(final Configuration newConfig) {
        super.onConfigurationChanged((listening) ? getListeningConfiguration(newConfig)
                : newConfig);
        setContentView(R.layout.medidor);
        preconfigureLayout();
    }

    public Configuration getListeningConfiguration(final Configuration c) {
        c.orientation = Configuration.ORIENTATION_PORTRAIT;
        return c;
    }

但它根本行不通。

除非我告诉它可以改变活动,否则如何强制活动保持纵向状态?

2 个答案:

答案 0 :(得分:5)

在活动代码中的清单文件中添加

        android:configChanges="orientation|keyboardHidden"
        android:screenOrientation="portrait"

这将使您的活动保持纵向模式。然后使用您的代码进行方向更改。

答案 1 :(得分:4)

只需调用它以保持纵向:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);