Android布局属性的高级说明?

时间:2011-02-17 21:55:50

标签: android android-layout android-styles

我正在努力学习如何在Android中正确布局组件。我是一名经验丰富的CSS / MXML开发人员,我很难全面了解Android组件中的布局属性。

有一点是我不确定这些之间的区别:

  • layout_margin与padding
  • layout_gravity vs. gravity与ignoreGravity

你应该使用线性,表格或相对布局来使用其中一个吗?我想学习的一个例子是布局上的整体边距,其中包含与屏幕顶部/中部/底部相关的独立组件。 sdk文档是一个良好的开端,但它们并没有显示在不同情况下的工作方式。

有关在哪里学习更复杂/全面的布局设计的任何提示?

2 个答案:

答案 0 :(得分:10)

前缀为layout_的任何属性都是LayoutParams属性。虽然视图本身在视图构造期间解析了大多数视图属性,但LayoutParams是父视图的特殊参数,它提供有关父级应如何调整子视图大小和位置的提示。哪个LayoutParams在视图上有效完全取决于父视图的类型。

因此,

layout_margin是对支持边距的父视图的指令。它说,“在我和其他观点或父母的边缘之间留下这么大的空间。”填充是视图之间的空间 视图的边缘及其内容。

layout_gravity是其父级中单个孩子的重力。 gravity会影响其显示的视图内容。

您使用哪一个取决于您想要达到的结果。如果您希望布局在其边缘及其所有内容之间具有固定的空间量,则需要填充。如果要将布局自己的边缘移动一定距离,则需要边距。如果没有设置背景的布局,这两个可以在视觉上等效。当您开始创建复杂的UI时,布局具有9个补丁背景,可视化地分组内容,差异变得明显。

答案 1 :(得分:-1)

enter image description here

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