2011-12-15 9 views
0

私のアプリケーションはandroid:configChanges="keyboardHidden|orientation「私は自分のデバイスを回転させたとき、onConfigurationChangedは()を2回呼び出されることが表示されます。Android:2つのonConfigurationChanged()イベントがローテーションで発生し、レイアウトのサイズが変更されるのはなぜですか?

私はonConfigurationChanged(でステートメントをログに置く。マニフェストファイルで設定)と引き分けで()のましたこれらのログの出力に基づいて、onConfugrationChanged()が2回呼び出され、2回目の呼び出しまでレイアウトがサイズ変更されないように見えます。

これは理由はありますか?この動作がすべてのデバイスで発生すると想定するか?

@Override 
public void draw (Canvas canvas) 
{ 
     Log.e("view", getWidth() + " " + getHeight()); 

@Override 
public void onConfigurationChanged(Configuration newConfig) 
{ 
     Log.e("rotated", "rotated"); 


12-15 16:27:36.605: ERROR/view(32510): 1280 700 
12-15 16:27:36.630: ERROR/view(32510): 1280 700 
12-15 16:27:37.000: ERROR/view(32510): 1280 700 
12-15 16:28:29.215: ERROR/rotated(32510): rotated 
12-15 16:28:29.220: ERROR/view(32510): 1280 700 
12-15 16:28:29.330: ERROR/rotated(32510): rotated 
12-15 16:28:29.380: ERROR/view(32510): 800 1180 
12-15 16:28:29.425: ERROR/view(32510): 800 1180 
12-15 16:28:29.525: ERROR/view(32510): 800 1180 
12-15 16:28:29.810: ERROR/view(32510): 800 1180 
+0

エミュレータでテストしていますか?それに関する既知のバグがあります。 – dmon

+0

いいえ、これはデバイス上にあります。 – ab11

答えて

0

onConfiguration()メソッドへの別の呼び出しで何が起こっているかを決定するためにあなたのonConfiguration()メソッドに次のコードを試してみてください。

http://developer.android.com/reference/android/content/res/Configuration.html

:コンフィギュレーションフラグの値がで文書化されている

Configuration c = getResources().getConfiguration(); 
    Log.i("view", "Orientation = " + c.orientation + ", Keyboard Config = " + c.keyboardHidden + ", Hardware Keyboard Config = " + c.hardKeyboardHidden); 

+0

私はこのログを試しました。構成値は、1回の回転で発生する両方のイベントで同じです。 – ab11

関連する問題