2011-02-17 75 views
8

我正在尋求學習如何在Android中正確佈局組件。我是一位經驗豐富的CSS/MXML開發人員,並且最難掌握Android組件的佈局屬性。Android佈局屬性的高級解釋?

一兩件事是我不知道它們之間的區別:

,你應該使用一個比其他

  • layout_margin與填充
  • layout_gravity與重力與ignoreGravity線性,表格或相對佈局?我想學習的一個例子是在佈局上有一個整體邊距,其中有與屏幕的頂部/中間/底部相關的單獨組件。 sdk文檔是一個好的開始,但他們並沒有說明在不同情況下工作的方式。

    有關如何學習更復雜/更全面的佈局設計的技巧?

回答

10

任何帶有前綴layout_的屬性都是LayoutParams屬性。雖然大多數視圖屬性在視圖構建過程中被視圖本身解析,但是LayoutParams是父視圖的特殊參數,它提供了關於父級如何確定子視圖的大小和位置的提示。哪些LayoutParams在視圖上有效完全取決於父視圖的類型。

layout_margin因此是對支持邊距的父視圖的指令。它說,「在我和其他觀點或父母的邊緣之間放置這麼多空間。」填充是視圖邊緣及其內容之間的視圖內的空間。

layout_gravity是其父母中的單個孩子的引力。 gravity會影響其顯示的視圖的內容。

您使用哪一個取決於您想要達到的結果。如果你想要一個佈局在其邊緣和它的所有內容之間有一個固定的空間量,你需要填充。如果您想將佈局的邊緣移動一定距離,則需要邊距。如果您的佈局沒有設置背景,這兩個可以在視覺上相同。當你開始創建複雜的用戶界面時,佈局具有9個可以在視覺上對內容進行分組的內容,這些差異就會變得明顯。

-1

enter image description here

我希望你能看到的填充和利潤率之間的差異。填充是在內部空間而邊距在空間之外。