Android机型

时间:2011-06-24 14:39:18

标签: android android-layout css

我感到非常惊讶,因为我无法找到有关Android机箱型号的详细信息。我的意思是填充,边距,重力等都是如何相互作用的。

除了开发网站中的note about margin and padding以及此SO question之外,没有太多信息。

我在寻找:

  • 边距,填充,重力等的默认值是什么
  • 制造商可以更改这些默认值。如果是这样,忽略这些默认值是不错的做法,这样你的应用程序在不同制造商之间看起来是一致的?
  • 如何解决冲突,尤其是组件及其子组件之间的冲突。
  • Android版本之间有什么区别吗?

真的那么简单,不值得在文档中进行更深入的解释吗?

谢谢,

2 个答案:

答案 0 :(得分:4)

  

我感到非常惊讶,因为我无法找到有关Android机箱型号的详细信息。

请注意,您的问题很少与LinearLayout有关,这与XUL或Flex中的“盒子模型”相当。也许你对“盒子模型”的定义与我使用的不同。

  

边距,填充,重力等的默认值是什么

默认边距和填充为0像素。默认重力因小部件/容器而异。

  

制造商可以改变这些默认值。

技术上,是的,虽然我不知道这在实践中已经完成。

  

如何解决冲突,特别是在组件及其子组件之间。

边距,填充或重力不存在可能的冲突。

  

Android版本之间有什么区别吗?

不是我知道的。

  

真的那么简单,不值得在文档中进行更深入的解释吗?

恕我直言,是的。

答案 1 :(得分:0)

如果你比较Android的盒子模型和CSS的盒子模型,我发现Android确实更容易掌握,而且复杂度要低得多。你没有像填充这样的恶作剧加上元素的宽度。恕我直言,定位逻辑(CSS:浮动/绝对/相对等)非常好,优雅地封装在Android的布局组件中。虽然在Android中有些事情很难做(比如在视图的底部有一个工具栏,并在列表中填充其余部分 - 但这也涉及到CSS中的恶意hackery),它比CSS更容易预测。

我建议您阅读所有布局组件,因为盒子模型很简单(边距,填充,宽度,高度),并且大多数定位和对齐是布局组件特定的(例如,“gravity”in LinearLayout,RelativeLayout中的“layout_above / below / toLeftOf / toRightOf”,...)。

但是我同意关于该主题的完整指南(+好的例子和类比)将有助于新手更快地达成Android布局,因为一些深入的信息仅作为基于案例的代码片段提供(只谈到网络,书籍确实做得更好。)

作为盒子模型的旁注:我偶然发现的一个“特点”是9-patch-drawables被设置为元素的背景会影响元素的填充。如果9-patch的box-padding不为0,则相应地设置元素的填充(如果未覆盖)。这真的让我陷入困境。