1

2つのxmlファイルを使用して2つのフォルダーlayoutとlayout-landを作成しました。1つは縦向き用、もう1つは横向き用です。両方のxmlが機能しますが、ここに問題があります。

最初の画面はログイン画面で、2番目の画面はメイン画面です。縦向きでログインしてから、メイン画面で携帯電話の横向きにした場合。レイアウトは横向きになりますが、メイン画面に縦向きのxmlを使用します。

横向きから始めて、後で縦向きに移動しようとすると、同じエラーが発生します。

メインで行うレイアウトは、アプリの残りの部分で使用されるレイアウトのようです。とにかくこれを回避することはありますか?

また。アクティビティのマニフェストですでにandroid:configChanges="orientation"を使用しています。

4

3 に答える 3

2

を使用android:configChanges="orientation"すると、コードで向きの変更を処理することになります。レイアウトを自動的に切り替えたい場合は、そこに置くべきではありません。

于 2012-06-28T18:54:21.537 に答える
2

を使用している場合は、構成の変更後にandroid:configChanges="orientation"上書きonConfigurationChangedして新しいレイアウトを拡張できます。

@Override
protected void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);                
    setContentView(...);
}

方向の変更でアクティビティが再作成されないようにする十分な理由があることを確認してください...そして最も重要なのは、方向の変更によってアプリがクラッシュするという理由だけでそれを行わないことです。構成の変更を自分で処理すると、システムが自動的に適用しないため、代替リソースを使用することが非常に難しくなる可能性があります。この手法は、構成の変更による再起動を回避する必要がある場合の最後の手段と見なす必要があり、ほとんどのアプリケーションでは推奨されません。

于 2012-06-28T19:10:02.460 に答える
0

2 つの異なるフォルダーに存在する両方の xml ファイルが同じ名前であることを確認してください。

于 2013-09-17T08:58:13.920 に答える