8

私はAndroidでコンポーネントを適切にレイアウトする方法を学ぶための探求に取り組んでいます。私は経験豊富なCSS/MXML開発者であり、Androidコンポーネントのレイアウトプロパティを完全に理解するのに最も苦労しています。

1つは、これらの違いがよくわからないことです。

  • layout_marginとpadding
  • layout_gravity vs.gravity vs.ignoreGravity

線形、テーブル、または相対レイアウトでどちらか一方を使用する必要がありますか?私が学びたいことの例は、画面の上部/中央/下部に関連する個別のコンポーネントを使用して、レイアウトに全体的なマージンを持たせることです。SDKドキュメントは良いスタートですが、さまざまな状況で物事がどのように機能するかを示していません。

より複雑で包括的なレイアウト設計を学ぶためのヒントはありますか?

4

2 に答える 2

10

layout_接頭辞が付いた属性はすべて属性LayoutParamsです。ほとんどのビュー属性は、ビュー自体によってビューの構築中に解析されますが、LayoutParams は、親が子ビューをどのようにサイズ設定および配置する必要があるかについてのヒントを提供する、親ビューへの特別な引数です。ビューで有効な LayoutParams は、親ビューのタイプに完全に依存します。

layout_marginしたがって、マージンをサポートする親ビューへの指示です。「私と他のビューまたは親の端との間にこれだけのスペースを入れてください」と書かれています。パディングは、ビューの端とそのコンテンツの間のビュー内のスペースです。

layout_gravity親内の単一の子の重力です。gravity表示されるビューの内容に影響します。

どちらを使用するかは、達成したい結果によって異なります。レイアウトの端とすべてのコンテンツの間に一定のスペースを確保したい場合は、パディングが必要です。レイアウト自体の端を特定の距離だけ移動したい場合は、マージンが必要です。背景が設定されていないレイアウトがある場合、これら 2 つは視覚的に同等になります。レイアウトにコンテンツを視覚的にグループ化する 9 パッチの背景がある複雑な UI の作成を開始すると、違いが明らかになります。

于 2011-02-17T22:13:25.177 に答える