如何只指定一次LinearLayout元素之间的间距?

Dud*_*ude 18 android android-widget android-layout android-linearlayout

我最近又遇到了一个问题,我在过去几年里曾多次遇到这个问题.

LinearLayout很方便layout manager.但我完全错过的是在单个XML标记中添加元素之间的某个空间(如填充)的可能性.

我的意思是,我可以在LinearLayout的声明中定义元素之间的间距(例如,在垂直LinearLayout中,这个布局中两个元素之间的垂直空间).

我知道我可以通过添加XML标签android:layout_marginTop或类似于LinearLayout中每个元素的东西来实现.

但我希望能够在一个点上定义它,因为所有元素的间距都是相同的.

有没有人知道一个简单的方法(不实现自定义LinearLayout或类似的东西)?我更喜欢直接在XML中工作而无需编码的解决方案.

chr*_*lip 18

建议的方法是将样式应用于线性布局中的所有元素

android:style="@style/mystyle"

<style name="mystyle">
      <item name="android:layout_marginTop">10dp</item>
      ... other things that your elements have in common
</style>
Run Code Online (Sandbox Code Playgroud)

  • 我和OP有同样的问题.但是,我不确定这种方法如何实现我正在寻找的东西.例如,如果我在LinearLayout中有10个文本视图,并且我希望所有文本视图之间的间距为10dp,我希望能够在一个地方指定10dp设置.如果我在示例中定义样式,我仍然必须将此样式应用于所有10个textviews.我在这里错过了什么吗? (2认同)

Zon*_*Zon 5

将自定义透明可绘制对象设置为布局的分隔线:

<LinearLayout
  android:showDividers="middle"
  android:divider="@drawable/divider">
Run Code Online (Sandbox Code Playgroud)

drawables文件夹(divider.xml)中的新的drawable资源:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android = "http://schemas.android.com/apk/res/android">
  <size
    android:width = "0dp"
    android:height = "16dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)