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