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

如何移除Android Drawable Shape的底部边框?

移除Android Drawable矩形边框的底部边框实现方案

原代码里的<stroke>标签会给矩形添加完整的四边边框,没办法单独隐藏某一边。要实现仅保留上、左、右三边且带顶部圆角的边框,推荐用<layer-list>来构建,以下提供两种可行方案:

方案一:独立绘制三边边框(通用型,不依赖父布局背景)

这种方法通过分别绘制左、上、右三条边框,完全自定义显示的边,适配任意背景色:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 基础透明背景,保留顶部圆角 -->
    <item>
        <shape android:shape="rectangle">
            <corners
                android:topLeftRadius="10dp"
                android:topRightRadius="10dp" />
            <solid android:color="@android:color/transparent" />
        </shape>
    </item>

    <!-- 左边框 -->
    <item
        android:left="1dp"
        android:right="-1dp"
        android:top="-1dp"
        android:bottom="-1dp">
        <shape android:shape="rectangle">
            <corners android:topLeftRadius="10dp" />
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="1dp"
                android:color="#DECF7E" />
        </shape>
    </item>

    <!-- 顶部边框 -->
    <item
        android:left="-1dp"
        android:right="-1dp"
        android:top="1dp"
        android:bottom="-1dp">
        <shape android:shape="rectangle">
            <corners
                android:topLeftRadius="10dp"
                android:topRightRadius="10dp" />
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="1dp"
                android:color="#DECF7E" />
        </shape>
    </item>

    <!-- 右边框 -->
    <item
        android:left="-1dp"
        android:right="1dp"
        android:top="-1dp"
        android:bottom="-1dp">
        <shape android:shape="rectangle">
            <corners android:topRightRadius="10dp" />
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="1dp"
                android:color="#DECF7E" />
        </shape>
    </item>
</layer-list>

方案二:覆盖底部边框(简洁型,需匹配父布局背景色)

如果明确父布局的背景颜色,可以先保留原全边框样式,再用一个同色矩形覆盖底部边框,达到隐藏效果:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 原带圆角的全边框样式 -->
    <item>
        <shape android:shape="rectangle">
            <corners
                android:topLeftRadius="10dp"
                android:topRightRadius="10dp" />
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="1dp"
                android:color="#DECF7E" />
        </shape>
    </item>

    <!-- 覆盖底部边框的矩形,颜色需与父布局背景色一致 -->
    <item 
        android:top="-1dp" 
        android:left="-1dp" 
        android:right="-1dp" 
        android:bottom="0dp">
        <shape android:shape="rectangle">
            <solid android:color="#FFFFFF" /> <!-- 替换为你的父布局背景色 -->
        </shape>
    </item>
</layer-list>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 21:33:25