这实际上是使用当前ProgressBar
API 获得的微不足道的。
根据所需的任务数量和完成的任务数量,您可以更新ProgressBar
使用setMax
和setProgress
progressBar.setMax(totalTasks);
progressBar.setProgress(tasksDone);
这将覆盖tasksDone / totalTasks
进度条中的一小部分。
编辑:根据评论中突出显示的场景,您可以简单地在LinearLayout
.
您可以使用具有所需分区颜色背景的 LinearLayout。
<LinearLayout
....
android:orientation="horizontal"
android:background="@color/partition"
....
/>
然后只需以相同的权重(和水平边距)以编程方式添加子视图:-
for(task in tasks) {
val progressBar = View(this)
progressBar.marginEnd = gapRequired
// customize your view here: Set background, shape etc.
// Set the width to 0 and weight to 1f
val params = LinearLayout.LayoutParams(0, height, 1f)
linearLayout.addView(view, index, params)
}
稍后修改单个视图(进度条的片段):-
val view = linearLayout.getChildAt(index)
// Modify the view as needed
要从布局中删除视图:-
linearLayout.removeViewAt(index)
或者,如果您引用了视图:-
linearLayout.removeView(view)
您还可以使用删除所有视图(如果您出于某种原因需要重置整个进度条)linearLayout.removeAllViews()
如果您希望进度条中有很多这些片段,您可能希望使用RecyclerView
适配器。