Вы можете создать собственное представление , которое содержит как ProgressBar, так и кнопку, например:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="64dp">
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ProgressBar
android:id="@+id/progress"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
</FrameLayout>
Создать составное представление:
class ProgressButton @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : FrameLayout(context, attrs, defStyleAttr) {
init {
inflate(context, R.layout.YOUR_LAYOUT_XML, this)
}
}
И после кнопки щелкните, вы устанавливаете progress
на ProgressBar
, делаете его видимым и отключаете кнопку.
button.isEnabled = false
with(progress) {
max = 100
progress = ... // Your percent value
// Set your colors to progress bar
if (correctAnswer) {
progressTintList = ColorStateList.valueOf(....)
progressBackgroundTintList = ColorStateList.valueOf(....)
} else {
progressTintList = ColorStateList.valueOf(....)
progressBackgroundTintList = ColorStateList.valueOf(....)
}
visibility = View.VISIBLE
}
И вы можете позже использовать это составное представление в своем макете вместо Button