3

縦向きの気分から横向きの気分に移行するときにアクティビティの更新を停止したいのですが、アクティビティをリフレッシュせずに縦向きの気分から横向きの気分に移行するときにファイルレイアウトランドをロードしたいです。

私が使う<activity android:name=".Login" android:configChanges="orientation|screenSize">

しかし、この方法では、縦向きから横向きに移動するとき、レイアウトランドフォルダからファイルをロードしません。私はこれのために何をすべきですか?誰か助けてください。

4

2 に答える 2

3

onConfigurationChanged() でメソッド setContentView(R.layout.main) を呼び出します

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

        ///in case you have some EditTexts , save their input before setting the new layout.
        emailForConfigChanges = emailTextBox.getText().toString().trim();
        passwordForConfigChanges = passwordTextBox.getText().toString().trim();

        setContentView(R.layout.main);

        //Now set the values back to the EditTexts .
    }

マニフェストで「方向」を宣言している場合は、方向のすべての変更を処理するため、このメソッドをアクティビティに追加するだけです。

EDIT :また、EditTexts が回転時に値を失った場合は、onConfigurationChanged() で setContentView() を呼び出す前に値を取得します。上記の編集を参照してください。

于 2012-10-09T07:27:06.263 に答える
1

私はこの問題を追加するだけで処理しましたandroid:configChanges="keyboardHidden|orientation"

これがお役に立てば幸いです。

于 2012-10-09T07:31:23.427 に答える