質問

Iで読み取るためにユーザのために大量のテキストを表示するアプリケーションを持っている。

私が横たわっている間読んだとき、私は画面の回転が私の頭と画面が整列しているにもかかわらず、ことをイライラすることを発見しました。

私は、これは

の設定のアプローチを排除するだろうと思うので、

私は、これはポートレートモードで恒久的に設定する必要はありません

 android:screenOrientation="portrait"
マニフェスト。

理想的には、私は好みのページを経由して/無効に自動の向きの変更を可能にしたいと思います。

私の最善のアプローチは何でしょう?

役に立ちましたか?

解決

私は SharedPreferences 私のアプリケーションのために、この値を読み取り、活動を呼び出します。 setRequestedOrientation()の問題のテキストビューがロードされるか、または表示されているコードから。

例えば、

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    if (prefs.getBoolean("fix_orientation_to_portrait", false)) {
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    } else {
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
    }

このはonCreate()またはonResume()方法のいずれかにすることができます。設定の変更は、この活動では、またはそれが行われたときに、この1に戻ってくる子アクティビティに発生した場合。

onCreate()方法でそれを持っていない唯一の理由は、

編集

それは仕事(と私は本当にわからそれはしませんよ)いない場合は、

OK、多分あなたは二つの異なるレイアウトのxmlファイルを持って試みることができる - screenOrientationが設定された1、およびその他なし。あなたのアクティビティ/ビューをロードするときは、動的に保存した設定に基づいて、どちらか一方をロードすることができます。それの<ストライキ>厄介なきれいではないが、それは動作するはずです。

他のヒント

この行のonCreate()内の関数を追加します。それは働いている...

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top