android OS 不接受横向模式设计的排列变化

android OS not accepting the landscape mode design on orintation changes

我的应用程序有横向和纵向模式。所以我为每种模式设计了两种布局。在清单文件中,我设置了以下代码。

android:configChanges="orientation"

它工作正常,但 activity 在每次方向改变时重新启动。所以我添加以下行以避免重新创建问题。

android:configChanges="keyboardHidden|orientation|screenSize"

现在activity没有重新制作也没有采用横向模式设计。

请帮我解决这个问题的朋友

我建议让应用程序在方向改变时重新创建自己。

如果您需要保留状态,则在调用 onSaveInstanceState 时存储信息。

/**
 * On min or rotate save state info.
 *
 * @param bundle saved values
 */
public void onSaveInstanceState(Bundle bundle) {

    bundle.putBoolean("SomeKey", someKeyValue);
    super.onSaveInstanceState(bundle);
}

然后在onCreate

中恢复值
    if (savedInstanceState != null) {

        if (savedInstanceState.containsKey("SomeKey")) {
            someKeyValue=  
               savedInstanceState.getBoolean("SomeKey");
        }

    }

使用 onConfigChanges: 是一个滑坡,在它不起作用之前效果很好。 每个 OS 版本的行为都会有所不同并变得更加复杂。

就我而言,我的应用程序在两个方向上都可以正常工作,这就是我所做的可能对您有所帮助,

use same code in public void onCreate(Bundle savedInstanceState) { // your code } and public void onConfigurationChanged(Configuration newConfig) { // your code }

并且在 AndroidManifest 文件中

一样使用
 <activity
        android:name="YourActivity"
        android:configChanges="orientation|screenSize"
        android:windowSoftInputMode="stateHidden" />

就是这样。如果有任何问题 post 你的评论