You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 横向LinearLayout设置子项间距且无左右两侧内边距的问题

实现方案

你可以通过以下两种常用方案实现需求,都能保证LinearLayout左右两侧无内边距,仅子项之间存在间距:

方案1:给子项设置边距(子项数量少时使用,简单直接)

仅需要给第2到第5个ImageView添加layout_marginStart属性即可,第一个子项不加边距保证左侧无留白,最后一个子项不加右侧边距保证右侧无留白:

<LinearLayout
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_marginBottom="32dp"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/rateOneStar"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_weight="1"
        app:srcCompat="@drawable/ic_star"
        app:tint="@color/ratingStarInactive" />

    <ImageView
        android:id="@+id/rateTwoStar"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_marginStart="8dp" <!-- 间距数值可自行调整 -->
        android:layout_weight="1"
        app:srcCompat="@drawable/ic_star"
        app:tint="@color/ratingStarInactive" />

    <ImageView
        android:id="@+id/rateThreeStar"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_marginStart="8dp"
        android:layout_weight="1"
        app:srcCompat="@drawable/ic_star"
        app:tint="@color/ratingStarInactive" />

    <ImageView
        android:id="@+id/rateFourStar"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_marginStart="8dp"
        android:layout_weight="1"
        app:srcCompat="@drawable/ic_star"
        app:tint="@color/ratingStarInactive" />

    <ImageView
        android:id="@+id/rateFiveStar"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_marginStart="8dp"
        android:layout_weight="1"
        app:srcCompat="@drawable/ic_star"
        app:tint="@color/ratingStarInactive" />
</LinearLayout>

方案2:使用LinearLayout自带分隔符(子项数量多/需要复用的时候使用,代码更简洁)

不需要修改子项属性,仅配置LinearLayout的分隔符即可:

  1. 先在res/drawable目录下新建space_divider.xml分隔符文件:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <size
        android:width="8dp" <!-- 间距数值可自行调整 -->
        android:height="0dp" />
    <solid android:color="@android:color/transparent" />
</shape>
  1. 给LinearLayout添加分隔符配置:
<LinearLayout
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_marginBottom="32dp"
    android:orientation="horizontal"
    android:divider="@drawable/space_divider"
    android:showDividers="middle" <!-- 仅在子项中间显示分隔符,左右两端不显示 -->
    android:dividerPadding="0dp">

    <!-- 子项代码和你原有代码完全一致,不需要修改 -->
    <ImageView
        android:id="@+id/rateOneStar"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_weight="1"
        app:srcCompat="@drawable/ic_star"
        app:tint="@color/ratingStarInactive" />

    <ImageView
        android:id="@+id/rateTwoStar"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_weight="1"
        app:srcCompat="@drawable/ic_star"
        app:tint="@color/ratingStarInactive" />

    <ImageView
        android:id="@+id/rateThreeStar"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_weight="1"
        app:srcCompat="@drawable/ic_star"
        app:tint="@color/ratingStarInactive" />

    <ImageView
        android:id="@+id/rateFourStar"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_weight="1"
        app:srcCompat="@drawable/ic_star"
        app:tint="@color/ratingStarInactive" />

    <ImageView
        android:id="@+id/rateFiveStar"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_weight="1"
        app:srcCompat="@drawable/ic_star"
        app:tint="@color/ratingStarInactive" />
</LinearLayout>

内容的提问来源于stack exchange,提问作者TheGreatCornholio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 00:27:00