2012-01-29 21 views
2

私はAndroid開発が初めてで、オリエンテーション変更のレイアウトに関するベストプラクティスに関する質問があります。Android開発のベストプラクティス

私の質問は、ユーザーがデバイスの向きを変更したときにレイアウトプロパティを処理することです。

アプリの目的のために、向きが変更されたときにレイアウト上でコントロールの位置を変更する必要がある場合、その特定の向きに対して新しいレイアウトを作成する必要がありますか?または、単一のレイアウト上のコントロールをプログラムで再配置するためにあらゆる努力を払う必要がありますか?

ありがとうございます。

答えて

1

私は新しいレイアウトが最良の選択肢ではないと考えています。あなたのプログラムは可能な限り最良の方法でコントロールを再配置する必要があります。私はこれらを読むことをお勧めしますlinks

3

私は先に進んで考えてみましょう。私は新しいレイアウトが確かに最良の選択だと思っています。あなたは単純なサイズの変更(お互いに関連したビューの移動など)を超えなければなりません。

Android APIは自動的にそれを処理するように設計されています。layout-landlayout-portという名前のディレクトリをそれぞれ横向きと縦向きのレイアウトにすることができ、システムはどちらか適切な方を使用します。

可能であれば、別のレイアウトを使用しないでください。レイアウトを維持してテストするのが2倍になります。通常、賢い重みと適切なRelativeLayoutsを使用することで、任意の解像度でレイアウトを動作させることができます。

しかし、場合によっては、向きに基づいてレイアウトを完全に再配置する必要があります。ランダムな例として、現在のバージョンのGoogleミュージックをご覧ください。肖像画では、画面の大部分はカバーアートで、下部にいくつかの情報が表示されます。ランドスケープでは、左半分はカバーアート、右半分は情報です。

また、Androidドキュメントへのリンクを閉じることにします。check this outそれは複数の画面サイズの詳細ですが、風景/ポートレートもカバーします。

+1

私はEboMikeに同意します。また、断片を使用して見てください。両方の方向で同じサブビューを再利用できます。たとえば、Gmailのアプリケーションのメインウィンドウを取る。 Honeycombの前にフラグメントを使用するには、Android互換パッケージが必要です:http://android-developers.blogspot.com/2011/03/fragments-for-all.html –

+0

良い点。この時点でフラグメントはほぼ不可欠です。 APIレベル4だけを必要とする互換性パックがあるため、アプリはほとんどすべてのデバイスで動作します。 – EboMike

関連する問題