2012-03-14 8 views
1

Android 3.0にタブレットアプリを構築していますが、タブレットの向きにかかわらず常にランドスケープで表示する必要があります。起動時にダイアログが表示されます。タブレットが横に固定され、ポートレートに切り替えられてロックが解除されると、アプリがクラッシュします。私は、問題が "ウィンドウマネージャに添付されていないビュー"というメッセージを含むIllegalStateExceptionであることを発見しました。タブレットアプリケーションが方向変更にクラッシュする

android:configChanges="orientation" 

および活性に加え:

public void onConfigurationChange() {} 

にエラーがDialog.dismiss(上でスローされる)Iは、アプリケーションタグにマニフェストに追加しました。

詳細情報が必要な場合はお知らせください。前もって感謝します。

+0

いただきましたが、正確にエラー:

は、これは役に立ちましたか? – waqaslam

+0

はあなたのコードを 'public void onConfigurationChange()'に貼り付けます。 – waqaslam

+0

変更がなければonConfigurationChangeメソッドは空です。 – cren90

答えて

0

私たちは問題を解決しました。私たちがテストしているタブレットは3.2です。 3.2では、android:configChanges属性には、マニフェストアプリケーションタグ内に画面サイズ

android:configChanges="orientation|screenSize" 

も含める必要があります。 How do I disable orientation change on Android?

3

あなたのonConfigurationChangeメソッドは空であってはいけないと思います。またスーパーメソッドを呼び出す必要があります。それはこのように書く:

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

    //your optional code 
} 
+0

何も変更すべきではないので、onStartコードを繰り返すべきですか? – cren90

+0

いいえ、そう思いません。あなたのonConfigurationChangedで** super **メソッドに – waqaslam

2

public void onPause()protected void onSaveInstanceState(Bundle outState)方法でダイアログを却下してください。

オリエンテーションの変更でアクティビティが再作成されると、親にアタッチされていないダイアログを閉じるときに例外がスローされるためです。

関連する問題