Barra de progreso dinámica en Kotlin

Android ProgressBar es un control de interfaz de usuario que se utiliza para mostrar algún tipo de progreso. Por ejemplo, cargar alguna página, descargar algún archivo o esperar a que se complete algún evento.

En este artículo, discutiremos cómo crear mediante programación una barra de progreso en Kotlin.

En primer lugar, necesitamos crear un proyecto en Android Studio. Para hacerlo sigue estos pasos:

  • Haga clic en Archivo , luego en Nuevo y luego en Nuevo proyecto y asigne el nombre que desee.
  • Luego, seleccione Compatibilidad con el idioma Kotlin y haga clic en el botón siguiente .
  • Seleccione SDK mínimo, lo que necesite.
  • Seleccione Actividad vacía y luego haga clic en finalizar .

Modificar archivo activity_main.xml

El segundo paso es diseñar nuestra página de diseño. Aquí, usaremos RelativeLayout para obtener ProgressBar del archivo Kotlin.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
  
  
    <RelativeLayout
            android:id="@+id/layout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_centerHorizontal="true"
            android:layout_above="@+id/button">
  
    </RelativeLayout>
  
    <Button
            android:id="@+id/button"
            android:layout_marginTop="100dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="Stop Loading"/>
  
</RelativeLayout>

Actualice el archivo strings.xml

<resources>
    <string name="app_name">DynamicProgressBarInKotlin</string>
</resources>

Crear ProgressBar en el archivo MainActivity.kt

Abra app/src/main/java/yourPackageName/MainActivity.kt. En este archivo, declaramos una variable ProgressBar para crear el widget ProgressBar como este

       val progressBar = ProgressBar(this)
       //setting height and width of progressBar
       progressBar.layoutParams = LinearLayout.LayoutParams(
           ViewGroup.LayoutParams.WRAP_CONTENT,
           ViewGroup.LayoutParams.WRAP_CONTENT)

luego agregue el widget en el diseño usando esto

val layout = findViewById(R.id.layout)
     // Add ProgressBar to our layout
     layout?.addView(progressBar)
package com.geeksforgeeks.myfirstkotlinapp
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.LinearLayout
import android.widget.ProgressBar
import android.widget.RelativeLayout
  
class MainActivity : AppCompatActivity() {
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
  
        val progressBar = ProgressBar(this)
        //setting height and width of progressBar
        progressBar.layoutParams = LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT)
  
        //accessing our relative layout where the progressBar will add up
        val layout = findViewById<RelativeLayout>(R.id.layout)
        // Add ProgressBar to our layout
        layout?.addView(progressBar)
  
        //accessing the button which will handle the events,
        // whether to show progressBar or not
        val button = findViewById<Button>(R.id.button)
  
        //set a click listener to show/hide progressBar added in RelativeLayout.
        button?.setOnClickListener {
            val visibility = if (progressBar.visibility == View.GONE){
                View.VISIBLE
            }else
                View.GONE
            progressBar.visibility = visibility
  
            //setting button text
            //if we click "stop loading" button, text of button will change
            // to "start loading.." and vice versa
            val btnText = if (progressBar.visibility == View.GONE)
                "START LOADING..."
            else
                "STOP LOADING"
            button.text = btnText
        }
  
    }
}

Archivo AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.geeksforgeeks.myfirstkotlinapp">
  
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
  
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
  
</manifest>

Ejecutar como emulador:

 

Publicación traducida automáticamente

Artículo escrito por Abhishek7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *