我最近又遇到了一个问题,过去几年里我已经遇到过好几次了。
LinearLayout
是一个非常方便的layout manager
。但我完全忽略了在单个XML标记中的元素之间添加特定空格(如填充)的可能性。
我所说的一个标记的意思是,我可以在LinearLayout的声明中定义元素之间的间距(例如,在垂直的LinearLayout中,该布局中的两个元素之间的垂直间距)。
我知道我可以通过向LinearLayout中的每个元素添加XML标记android:layout_marginTop
或类似的东西来实现。
但我希望能够只在一点上定义它,因为所有元素的间距都是相同的。
有没有人知道一种简单的方法(不实现定制的LinearLayout或类似的东西)?我更喜欢直接在XML中工作而不需要编码的解决方案。
6条答案
按热度按时间nwlls2ji1#
推荐的方式是将样式应用于线性布局中的所有元素
xqkwcwgp2#
将自定义透明可绘制设置为布局的分隔符:
Drawables文件夹(Divider.xml)中的新可绘制资源:
ewm0tg9j3#
@Chris-Tulip的回答对我真的很有帮助--也有很好的练习。
对于那些可能像我一样在Android包中缺少“style”的资源标识符的人来说,您不需要添加Android名称空间。
因此,android:style=“xx”会出现错误,而style=“xx”是正确的。很时髦,但对于任何有这种错误的人来说,这可能会有所帮助。
krcsximq4#
您应该将
android:layout_marginTop
或android:layout_marginLeft
添加到必须具有缩进的元素。取决于LinearLayout
的android:orientation
。iqjalb3h5#
您可以在单独的XML文件中定义单个项目“原型”,然后在代码中动态膨胀该文件中的项目,并将它们插入到您的线性布局中。
然后,您可以在实际项目上定义间距,而不是父LinearLayout上的间距(例如,定义为
android:layout_marginTop
),并且该间距将在您膨胀项目时应用于所有项目。编辑:*
tainer.xml:*
我还没有努力测试代码,但它应该按原样工作:-)
5hcedyr06#
对于垂直空间
对于水平空间