Android布局属性的高级解释?

8
我正在学习如何在Android中正确地布局组件。 我是一名经验丰富的CSS / MXML开发人员,但我很难完全理解Android组件中的布局属性。
其中一件事是我不确定以下内容之间的区别:
- layout_margin与padding - layout_gravity与gravity与ignoreGravity
在Linear、Table或Relative Layouts中,应该使用哪个?我想学习的一个例子是在整个布局上具有分别与屏幕顶部/中间/底部相关的单独组件的边距。 SDK文档是一个良好的开始,但它们并不展示不同情况下的工作原理。
有没有关于在哪里学习更复杂/全面的布局设计的提示?
2个回答

10
任何以 layout_ 前缀开头的属性都是 LayoutParams 属性。虽然大多数视图属性在视图本身的构建过程中被解析,但 LayoutParams 是提供有关父视图应如何调整子视图大小和位置的特殊参数。哪些 LayoutParams 在视图上有效完全取决于父视图的类型。
因此,layout_margin 是一条指令,用于支持边距的父视图。它表示:“在我和其他视图或父级边缘之间留出这么多空间。” Padding 是视图内部的空间,位于视图边缘和其内容之间。 layout_gravity 是一个单个子项在其父项中的重力。而 gravity 影响其所在视图的内容。
您使用哪个取决于您想要实现的结果。如果要使布局的边缘和所有内容之间具有固定的空间量,则需要填充。如果想移动布局自己的边缘一定距离,则需要使用边距。当您没有设置背景的布局时,这两者可以在视觉上等效。但是,在创建具有可视化分组内容的 9 段背景的复杂用户界面时,这两者的区别变得明显。

-1

enter image description here

我希望你能看到填充和边距之间的区别。填充是内部间距,而边距是外部间距。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接