2

画面の向きをかなり速く変更したとき、またはバックグラウンドで重いものが発生したときに、奇妙な問題に遭遇しました。私が呼び出すsetContentView(R.layout.main);onConfigurationChanged(向きの変更を自分で処理します)、画面が回転した後、アンドロイドが少しの間、向きと反対のレイアウトを設定します。たとえば、向きを変更すると、このPortrait>Landscapeのようにレイアウトが変更されますが、私の場合、このPortrait>Portrait (電話が既に横向きの位置にある場合)>Landscape のようになることがあります。

これに気付かないこともあれば、画面が約 1/3 秒間縮小することもあります。大したことではありませんが、私の活動では Coverflow ウィジェット (Gallery に基づく) があり、ほとんどの画面で見栄えを良くするために、(onSizeChangedウィジェットの)親コンテナーのサイズに基づいて画像サイズを設定します。方向の変更は上記のように行われ、coverflow ウィジェットが間違ったサイズを取得します。

私が今見ている唯一の方法は、向きの変更時に onCreate を呼び出すか (オンラインで大量の UI が入力されているため、これはできません)、UI の初期化に遅延を設定することです (これは醜いです)。

setContentView()だから、コールバックや何か他のものがあるのだろうか.

それとも別の方法がありますか?

PS: 何らかの理由で、この不具合は主に Desire HD で発生します。

4

1 に答える 1

0

AndroidManifest.xml

android:configChanges="orientation"

それはあなたが期待するものですか?

于 2011-10-12T15:49:55.547 に答える