我感到非常惊讶,因为我无法找到有关Android机箱型号的详细信息。我的意思是填充,边距,重力等都是如何相互作用的。
除了开发网站中的note about margin and padding以及此SO question之外,没有太多信息。
我在寻找:
真的那么简单,不值得在文档中进行更深入的解释吗?
谢谢,
涓
答案 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,则相应地设置元素的填充(如果未覆盖)。这真的让我陷入困境。