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: