3 Temmuz 2020 Cuma

Kotlin-9 (Android Kotlin ProgressBar - Kotlin ile ProgressBar gösterimi)

Herkse merhaba,

bu yazımda Kotlin ile ProgressBar gösterimini paylaşacağım.

 

İlk adım olarak Android Studio ile Kotlin destekli bir Android projesi oluşturun.

 

layout/activity_main.xml dosyasına geçerek buraya bir ProgressBar componenti ekleyin. ProgressBar'ın ilerleme statüsünü gösteren bir TextView ve ProgressBar'ı tetiklemek için bir Button ekleyin.

Dosyanın son hali aşağıdaki gibi olacaktır.



<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ProgressBar
android:id="@+id/progressBarComp"
style="?android:attr/progressBarStyle"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:layout_marginLeft="70dp"
android:layout_marginTop="150dp"
android:indeterminate="true"
android:max="100"
android:minWidth="200dp"
android:minHeight="100dp"
android:progress="0"
android:visibility="invisible" />

<TextView
android:id="@+id/progressBarStatusText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/progressBarComp"
android:layout_alignLeft="@+id/progressBarComp" />

<Button
android:id="@+id/startProgressBtn"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@+id/progressBarStatusText"
android:layout_alignStart="@+id/progressBarComp"
android:layout_alignEnd="@+id/progressBarComp"
android:layout_centerHorizontal="true"
android:layout_marginStart="2dp"
android:layout_marginTop="21dp"
android:layout_marginEnd="-2dp"
android:gravity="center"
android:text="Progress Bar" />
</RelativeLayout>

 

  

MainActivity.kt class'ına  giderek ProgressBar için bir setOnClickListener tanımlayın. Daha sonra butona tıklayınca ekranda ProgressBar'ın görünmesi için             progressBarComp.setVisibility(View.VISIBLE) satırını ekleyin. Farklı bir thread de ProgressBar'ın statüsünü 1 saniye aralıkla beşer beşer artırın. Handler().post(...) methodu aracılığıyla main thread deki textView'a erişerek ProgressBar değerini ekrana basın. Son olarak ProgressBar ilerleme değeri 100 olduğunda ProgressBar'ın görünürlüğünü kapatın(progressBarComp.setVisibility(View.INVISIBLE)).

 

MainActivity.kt dosyasının son hali aşağıdaki gibi olacaktır.



class MainActivity : AppCompatActivity() {

private var i = 0
private val handler = Handler()

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

startProgressBtn.setOnClickListener {

progressBarComp.setVisibility(View.VISIBLE)

i = progressBarComp!!.progress

Thread(Runnable {

while (i < 100) {
i += 5
handler.post(Runnable {
progressBarComp!!.progress = i
progressBarStatusText!!.text = i.toString() + "/" + progressBarComp!!.max
})
try {
Thread.sleep(100)
} catch (e: InterruptedException) {
e.printStackTrace()
}

}

if (i == 100) {
progressBarComp.setVisibility(View.INVISIBLE)
}

}).start()


}
}
}

 

 

Uygulamanın kaynak kodlarına aşağıdan erişebilirsiniz.

Github :https://github.com/lvntyldz/tutorials/tree/master/kotlin-android-app-examples/09-progressbar 


Hiç yorum yok:

Yorum Gönder