2011-06-24 7 views
2

Androidのボックスモデルに関する詳細情報が見つかりませんでした。私は、パディング、マージン、重力などがすべてどのように相互作用するかを意味します。Androidのボックスモデル

devサイトのこのnote about margin and padding以外では、このSO questionには情報があまりありません。私が探している何

:マージン、パディング、比重のデフォルトは何

  • は、など
  • は、メーカーは、これらのデフォルトを変更することができます。もしそうなら、それらのデフォルトを無視して、あなたのアプリが異なるメーカー間で一貫して見えるようにするのは良い習慣でしょうか?
  • 競合がどのように解決されますか、特にコンポーネントとその子要素の間で競合が解決されます。
  • Androidのバージョンに違いはありますか?

これは本当に簡単なことですが、ドキュメントで詳しく説明する価値はありませんか?私はAndroidのボックスモデルに関する詳細な情報を見つけることができていないことをむしろ驚い

おかげで、

フアン

答えて

4

LinearLayoutは、XULやFlexにある「ボックスモデル」と同等のものです。おそらく、あなたは私が使っているものとは違った "ボックスモデル"の定義を持っています。マージン、パディング、比重のデフォルトは何

、デフォルトのマージンとパディングのためなど

0ピクセル。デフォルトの重力はウィジェット/コンテナによって異なります。

メーカーはこれらのデフォルト値を変更できますか。

技術的には、私はこれが実際に行われていることに気づいていませんが、

特にコンポーネントとその子の間で競合がどのように解決されますか。

マージン、パディング、または重力に矛盾はありません。

Androidのバージョンに違いはありますか?

私は認識していません。

これは本当に簡単なことですが、ドキュメントで詳しく説明する価値はありませんか?

IMHO、はい。

+0

私は、styles.xml、ライン、および9.patchアセットで同じ要素のパディングを定義するようなことを意味します。確かに、それはあなたが意図的にしたいことではありませんが、それは起こり得て、あなたを怒らせますよね?多分、私は紛争の代わりに優先権を言いましたか? –

+0

AFAIKの優先順位は、優先順位の高い順に次のようになります。 ** 2)** AttributeSetで指定された 'style'リソース_(" style "という名前のもの)は、 (現在のテーマのスタイルを指す属性)_と 'defStyleRes' _(オーバーロードされたコンストラクタで実際のスタイル参照が指定されています)_... 3)** _ defStyleAttr _ – Dori

+0

...そして最後に** 4)**現在のコンテキスト 'theme'の基底値。これらは、 'Context.obtainStyledResults(...) 'を呼び出すときに使用されるコンテキストから取得されます。 – Dori

0

AndroidのボックスモデルとCSSのボックスモデルを比較すると、実際にはAndroidの把握が容易になり、複雑さも大幅に軽減されます。パディングが要素の幅まで追加されているような嫌悪感はありません。 IMHO、ポジショニングロジック(CSS:float/absolute/relativeなど)は、Androidのレイアウトコンポーネントに非常にうまく、エレガントにカプセル化されています。 Androidでは(ビューの下部にツールバーがあり、残りの部分にリストを埋め込むなどの)難しいことがいくつかありますが、これはCSSでも邪魔になりませんが、CSSよりもはるかに予測可能です。

ボックスモデルは簡単で(マージン、パディング、幅、高さ)、レイアウトやコンポーネントの配置や配置の大部分は重力(例:「重力」)であるため、 LinearLayoutでは、RelativeLayoutの "layout_above/below/toLeftOf/toRightOf")。

しかし、その話題の完全なガイド(+良い例と類推)が、Androidベースのレイアウトの方がはるかに迅速になるようになることに同意します。これは、ケースベースのコードスニペット(ウェブだけを話すと、本は確かに良い仕事をする)。

ボックスモデルのメモ:私が遭遇した1つの「特異性」は、要素の背景として設定されている9-patch-drawablesが要素のパディングに影響することです。 9パッチのボックスパディングが0でない場合、オーバーライドされない場合、要素のパディングがそれに応じて設定されます。これは本当に一度お尻に私をビット。

関連する問題