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

如何为react-native-progress的Progress.Bar内部进度条设置borderRadius

解决方案

原因说明

你设置的borderRadius属性仅作用于Progress.Bar的外层容器,内部已填充进度条的圆角默认不会继承外层设置,给组件根style添加borderRadius也不会作用到内部进度条元素上,因此无法实现预期效果。

修复方法

方案一:使用官方提供的progressStyle属性(推荐)

直接使用组件暴露的progressStyle配置项定制内部已填充进度条的样式即可,你设置了外层高度为10、padding为2,因此内部进度条的实际高度为6,将progressStyle的borderRadius设为3即可实现完全圆角的效果,修改后的代码如下:

<Progress.Bar
  color={'rgb(128,0,128)'}
  progress={0.5}
  borderWidth={1}
  borderColor={'rgba(128,0,128,0.2)'}
  unfilledColor={'white'}
  height={10}
  borderRadius={7.5}
  width={200}
  style={{ padding: 2 }}
  // 新增progressStyle配置内部进度条圆角
  progressStyle={{ borderRadius: 3 }}
/>

该方案不需要修改原有结构,适配进度为0%、100%等所有进度场景的圆角表现。

方案二:外层容器包裹实现

如果方案一没有生效,你可以将边框、padding等逻辑移到外层自定义View上实现,代码如下:

<View style={{
  width: 200,
  borderWidth: 1,
  borderColor: 'rgba(128,0,128,0.2)',
  borderRadius: 7.5,
  padding: 2,
  overflow: 'hidden'
}}>
  <Progress.Bar
    color={'rgb(128,0,128)'}
    progress={0.5}
    borderWidth={0}
    unfilledColor={'white'}
    height={10}
    borderRadius={3}
    width={196}
  />
</View>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:54:07