1

画面が回転したときにクラッシュしないように、アプリが呼び出されたときの位置に画面の向きをロックしようとしています (はい、使用しました

android:configChanges="orientation|keyboardHidden"

Androidの下位バージョンでは問題なく動作しますが、上位のAndroidバージョンでは正常に動作するはずです

android:configChanges="orientation|keyboardHidden|screenSize"

また、screenSize パラメータは下位の Android バージョンではサポートされていません)。

だから、私はこの解決策を試しました(1):

setRequestedOrientation ( getResources().getConfiguration().orientation );

そして、この他のもの(2):

setRequestedOrientation ( getScreenOrientation() );

どこ、

public int getScreenOrientation()
{
    Display getOrient = getWindowManager().getDefaultDisplay();
    int orientation = Configuration.ORIENTATION_UNDEFINED;

        if(getOrient.getWidth() < getOrient.getHeight()){
            orientation = Configuration.ORIENTATION_PORTRAIT;
        }else { 
             orientation = Configuration.ORIENTATION_LANDSCAPE;
        }

    return orientation;
}

どちらの場合も (1 と 2)、結果は次のようになります。縦向きでアプリを起動すると、正常に動作します。画面の向きは縦向きに固定されています。しかし、横向きにすると、向きが変わり続けます。

私が間違っていることは何ですか?前もって感謝します

4

2 に答える 2

1

向きの構成の問題は、アプリの起動時にデバイスが横向きであっても、アプリは縦向きモードで作成され、必要に応じて横向きに切り替わることです。一般的に、ゲームでない限り、向きを強制するべきではありません。向きを変えてもクラッシュしないように、アプリを修正する必要があります。

于 2013-03-05T16:25:42.977 に答える
0

Configuration.ORIENTATION_PORTRAIT定数を作成して、方法2を使用しているときにそれを比較することはできませんかgetOrient。次に、等しい場合は縦に設定し、そうでない場合は横に設定します。

于 2013-03-05T16:07:36.423 に答える