2016-08-09 7 views
1

私はAndroidアプリを持っており、レイアウトは風景と肖像画の両方で利用できます。Androidで手動でアクションバーを再描画

多くの入力と選択があり、電話を回してもそれらを保持したいと思っています。

私は私のマニフェストにActivityにこれを追加しました:肖像画から風景やすべてに回転すると、私のActionBarのサイズ/ TEXTSIZE除き、よさそうだとき

android:configChanges="orientation|screenSize|keyboardHidden|keyboard" 

入力は保持されます。それは変わらない。私が横長モードでActivityを開始した場合、文字サイズは小さくなりますが、ポートレートモードに戻って回転すると、もちろん大きくなりません。

ActionBar(などのように)を再描画する方法や、すべての入力を簡単に保持する方法はありますか。

+0

ツールバーを使用して、手で完全にコントロールできます。 –

答えて

1

この場合、configChangesを使用することは、実際には悪いことです。

はい、オリエンテーションの変更で入力と状態が保持されますが、Activityは他の理由で再作成することができます。たとえば、アプリがバックグラウンドにあり、OSがメモリを解放し、あなたはそれに戻ります。

アプリを再度開くと、OSは残したままActivityを再作成しようとしますが、失敗する可能性があります(ほとんどの場合クラッシュする可能性があります)。

configChanges属性を使用する代わりに、onSaveInstanceState()にアイテムを保存し、Bundleから復元してonCreate()に保存する必要があります。

このトピックのdeveloper's guideをご覧ください。

関連する問題