0

私の Android アプリケーションでは、my_profile.xml という同じファイル名で 2 つの異なるレイアウトを設計し、1) res/layout、2) res/layout-land という 2 つの異なるディレクトリに保存しました。問題は、ポートレート モードでアクティビティを開始すると、ポートレート モードのレイアウトがロードされますが、向きを変更してもレイアウトは変更されません。しかし、ランドスケープ モードでアクティビティを開始すると、ランドスケープのレイアウトがロードされます。問題は、向きを変更したときだけで、自動的に処理されません。何が問題なのか教えてください。

4

3 に答える 3

0

以下を確認してください。

1) マニフェスト ファイルで、アクティビティの以下の行を確認します

 android:configChanges="orientation|keyboardHidden|screenSize"

2) 以下の関数をオーバーライドする

@Override

    public void onConfigurationChanged(Configuration newConfig) {
        // TODO Auto-generated method stub
        super.onConfigurationChanged(newConfig);

        Log.d(tag,"onconfig");

        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {

                   // do something
            Log.d(tag,"land");
        } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
              // do something
        }
    }

-プリーヤ

于 2012-12-28T11:44:33.957 に答える
0

manifest.xml で、次のような変更を行います,,,,,

<activity android:name=".myActivity" android:windowSoftInputMode="adjustPan" android:configChanges="keyboardHidden"></activity>

configuartionChanges="orientation" を使用しないでください

それでおしまい...

于 2012-12-28T11:44:45.193 に答える
0

マニフェスト ファイルを確認します。あなたの活動に以下がある場合は、それを削除してください:

android:configChanges="keyboard|orientation|screenSize"

orientationアクティビティが新しいレイアウトを作成するのではなく、同じレイアウトに頼るようにします。

于 2012-12-28T11:52:42.907 に答える