问题描述
我想在我的启动画面活动中创建一个水平进度条 但是当我编写 kotlin 代码来为其设置动画时,进度条的 id 显示为红色。
xml
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="150dp"
android:progressDrawable="@drawable/progress_bar"
android:layout_height="10dp"
android:layout_marginBottom="50dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
kt
class SplashScreen : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.splash_screen)
progressBar.max = 1000
val currentProg = 999
ObjectAnimator.ofInt(progressBar,"progress",currentProg)
.setDuration(4000)
.start()
}}
解决方法
你应该像这样改变你的代码
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.splash_screen)
findViewById<ProgressBar>(R.id.progressBar).apply {
max = 1000
val currentProg = 999
ObjectAnimator.ofInt(it,"progress",currentProg)
.setDuration(4000)
.start()
}
}}