0

私が持っているマニフェストで、layoutとlayout-landフォルダーを作成しました

android:configChanges="keyboardHidden|orientation"

マニフェストandroid:configChangesから削除すると、レイアウトが縦向きから横向きに変わるのがわかります...問題は、戻ろうとすると以前の画面が破壊されることです。

Javaにコードを追加して、いつレイアウトを変更するかを伝えることができると思います。私はすでにたくさんの投稿を読みましたが、コードのどこでそれが起こるのか混乱しています.

私は Android が初めてなので、事前にパッケージ化されたコードを使用しようとしています。以下のリンクは、特にレイアウトを変更する必要があるメニュー画面の Java コードです。本当にありがとう!!

メニュー Java

4

2 に答える 2

4

追加android:configChanges="keyboardHidden|orientation"すると、アクティビティの再作成が停止し、レイアウトをレイアウトランド/ポートレートレイアウトに変更できなくなります。その場合、Javaコードから手動で管理する必要があります。デバイスを回転させたり、向きを変えたりしたときに取得しdon'tたい場合。onConfigurationChanged()メソッド内で画面の向きが変わったら、レイアウトを変更するだけです。Activityre-created

ここで私の答えを確認してください、それはどのように行うことができますか。

于 2012-04-05T09:36:14.077 に答える
2

これらの問題に対する私の回避策は

マニフェスト ファイルで android:configChanges="keyboardHidden|orientation" を使用できます。これらの行を使用しない場合、アクティビティは破棄され、再度作成されます。

そして、以下のメソッドがあります

@Override
public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);
    setContentView(R.layout.yourlayoutname);
}

ここで向きの変更を処理できます...

于 2012-04-05T09:39:57.617 に答える