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

Android垂直进度条Drawable中Clip标签与圆角不兼容问题

解决垂直进度条进度部分圆角失效的问题

这个问题我之前也碰到过,核心原因是<clip>标签的工作机制:它会直接裁剪掉超出显示范围的Drawable内容,当进度未填满整个进度条时,进度shape的顶部圆角(因为是从底部往上填充)会被完全裁剪,而底部圆角又被背景层覆盖,导致看起来进度部分完全没有圆角效果。

解决方案1:用<scale>替代<clip>(推荐)

通过<scale>标签实现垂直方向的缩放显示,这样进度的shape会完整保留圆角属性,根据进度值从底部向上缩放:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="9dip"/>
            <solid android:color="@color/bottom_bar_color"/>
            <stroke android:width="1dp" android:color="@color/bottom_bar_color" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <scale
            android:scaleOrientation="vertical"
            android:gravity="bottom">
            <shape>
                <corners android:radius="9dip"/>
                <solid android:color="#FFFFFF"/>
                <stroke android:width="1dp" android:color="#fff" />
            </shape>
        </scale>
    </item>
</layer-list>

这种方式下,进度条的圆角会始终保持:进度较低时,顶部的圆角正常显示;进度满时,整个进度条的圆角和背景完全匹配。

解决方案2:只保留进度底部的圆角

如果你的设计只需要进度的底部和背景保持圆角一致,顶部可以是平直的,可以修改进度shape的圆角属性,只设置底部两个圆角,这样即使使用<clip>也能正常显示:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="9dip"/>
            <solid android:color="@color/bottom_bar_color"/>
            <stroke android:width="1dp" android:color="@color/bottom_bar_color" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <clip android:clipOrientation="vertical" android:gravity="bottom">
            <shape>
                <!-- 仅设置底部圆角 -->
                <corners android:bottomLeftRadius="9dip" android:bottomRightRadius="9dip"/>
                <solid android:color="#FFFFFF"/>
                <stroke android:width="1dp" android:color="#fff" />
            </shape>
        </clip>
    </item>
</layer-list>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:30:01