我如何从本机反应中获得这个进度条?

How do I get this progress bar from react native?

所以想在react native中实现一个这样的进度条。我找到了一个库https://www.npmjs.com/package/react-native-progress,但是这个库没有这样的进度条。问题是圆圈部分。有没有像这样的进度条的库?如果没有,那么将不胜感激关于如何实现这一点的任何想法。因此,由于一位评论者对它是滑块还是进度条感到困惑,我将包括全屏图像。有一个计时器,进度条或进度滑块实时反映。

我们仍然可以为此目的利用 react-native-community/slider。这是有道理的,因为我们可以允许用户快进。如果您不想允许用户交互,您仍然可以通过滑块组件道具禁用它。

为了平滑滑动,滑块以更高的滴答速率更改其值。您可能想稍微试验一下,以使其适合您的需要。

这是我如何做到的例子。

const [progress, setProgress] = useState(-1)

// takes time in seconds
function interpolate(time) {
  return time * 600
}

// runs 10 seconds, you can take any other value
const [time, setTime] = useState(interpolate(10))

useEffect(() => {
  if (progress < time && progress > -1) {
    const timer = setTimeout(() => setProgress(progress + 10), 10)
    return () => clearTimeout(timer)
  }
}, [progress, time])

const startTimer = React.useCallback(() => {
  setProgress(0)
}, [])

return (
  <SafeAreaView style={{ margin: 30 }}>
    <Slider
      style={{ width: 300, height: 40, backgroundColor: "red" }}
      value={progress}
      minimumValue={0}
      maximumValue={time}
      minimumTrackTintColor="#FFFFFF"
      maximumTrackTintColor="#FFFFFF"
    />
    <Pressable style={{ marginTop: 10 }} onPress={() => startTimer()}>
      <Text>Toggle timer</Text>
    </Pressable>
  </SafeAreaView>
)

以上是一个虚拟实现,它将 运行 计时器持续 10 秒,滑块将像进度条一样自动移动。