3

Orientation をテストするサンプル プログラムを作成しました。ポートレート モードで携帯電話を逆に傾ける場合、サンプル アプリを逆ポートレートにします。これに関する多くの質問を読んだ後-使用する必要があると考えました:

   onConfigurationChanged(Configuration newConfig) 

私は次のことを試していました:

    @Override
public void onConfigurationChanged(Configuration newConfig) 
{
    super.onConfigurationChanged(newConfig);

    Configuration c = getResources().getConfiguration();

    Log.e("Config",""+c);

    if (c.orientation == Configuration.ORIENTATION_PORTRAIT) 
    {
        // portrait

        Log.e("On Config Change","portrait");

    } 
    else if (c.orientation == Configuration.ORIENTATION_LANDSCAPE) 
    {
        // landscape
        Log.e("On Config Change","LANDSCAPE");

    }
}

マニフェスト.xml

android:configChanges="orientation" 

これでもやってみた

android:configChanges="orientation|screensize"

奇妙なことに、OnConfigurationChange メソッド内でログを取得していません。

わからない。ここで何が問題なのですか?

Api 18 をターゲットにするために、最小限の API 8 を使用しています。

誰かがこれで私を助けることができますか?

ありがとう!

4

3 に答える 3

4

ターゲット API を 19(4.4 kitkat) に変更した後、同じ問題が発生しました。バージョン 17 以降をターゲットにするには、layoutDirection 属性を追加する必要があります。

私の属性は次のようになります:

android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|layoutDirection"

重要なのは、「layoutDirection」を追加することです

于 2013-11-06T18:13:28.527 に答える