¿Cómo agregar RangeSeekbar en Android usando Kotlin?

En este artículo, RangeSeekbar se implementa en una aplicación en Android. Android Seekbar es un tipo de barra de progreso. Podemos arrastrar la barra de búsqueda de izquierda a derecha y viceversa y, por lo tanto, cambia el progreso actual. Aquí usamos la biblioteca RangeSeekbar para agregar una barra de búsqueda personalizada en nuestra aplicación. Esta biblioteca nos brinda varias funciones como pasos, modo, thumbDrawable, etc., lo que la hace mucho mejor que la barra de búsqueda proporcionada por Android.

Acercarse

Paso 1: agregue la biblioteca de soporte en su archivo raíz build.gradle (no en su archivo de módulo build.gradle). Esta biblioteca jitpack es un repositorio de paquetes novedosos. Está hecho para JVM para que cualquier biblioteca que esté presente en github y bigbucket se pueda usar directamente en la aplicación.

XML

      
allprojects {         
   repositories {         
      maven { url 'https://jitpack.io' }         
  }
}         

Paso 2: agregue la biblioteca de soporte en el archivo build.gradle y agregue la dependencia en la sección de dependencias. A través de esto, RangeSeekbar se utilizará directamente en el XML.

XML

       
dependencies {         
         implementation 'com.github.Jay-Goo:RangeSeekBar:v3.0.0'         
}

Paso 3: Cree una array de strings en el archivo strings.xml presente en la carpeta de valores.

strings.xml

    
<string-array name="levelArray">
        <item>Lv1</item>
        <item>Lv2</item>
        <item>Lv3</item>
        <item>Lv4</item>
        <item>Lv5</item>
    </string-array>

Paso 4: agregue el siguiente código en el archivo activity_main.xml . En este archivo, se agrega la barra de búsqueda al diseño y se agregan etiquetas importantes como pasos, thumbDrawable, modo y muchas más de acuerdo con el requisito.

activity_main.xml

    
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  
 <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="228dp"
        android:textSize="18sp"
        android:text="Set difficulty for problem:-"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
  
    <com.jaygoo.widget.RangeSeekBar
        android:id="@+id/range_seekbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:rsb_gravity="bottom"
        app:rsb_indicator_background_color="@color/colorProgress"
        app:rsb_indicator_height="30dp"
        app:rsb_indicator_width="50dp"
        app:rsb_mode="single"
        app:rsb_progress_color="@color/colorProgress"
        app:rsb_step_auto_bonding="true"
        app:rsb_step_color="@color/colorProgress"
        app:rsb_step_height="10dp"
        app:rsb_step_width="5dp"
        app:rsb_steps="4"
        app:rsb_thumb_drawable="@drawable/ic_baseline_brightness"
        app:rsb_tick_mark_layout_gravity="bottom"
        app:rsb_tick_mark_mode="other"
        app:rsb_tick_mark_text_array="@array/levelArray"
        app:rsb_tick_mark_text_margin="20dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
  
</androidx.constraintlayout.widget.ConstraintLayout>

Paso 5: agregue el siguiente código en el archivo MainActivity.kt . Aquí setOnRangeChangedListener se agrega con la barra de búsqueda. Se invoca cuando el usuario cambia la barra de búsqueda y muestra el porcentaje de progreso al que se cambia.

MainActivity.kt

package org.geeksforgeeks.rangeseekbar
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import com.jaygoo.widget.OnRangeChangedListener
import com.jaygoo.widget.RangeSeekBar
import kotlinx.android.synthetic.main.activity_main.*
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        //whenever we change progress of seekbar this function 
        //get invoked automatically.
        range_seekbar?.setOnRangeChangedListener(object : 
            OnRangeChangedListener {
            override fun onRangeChanged(
                     rangeSeekBar: RangeSeekBar, leftValue: Float,
                     rightValue: Float, isFromUser: Boolean) {
                Toast.makeText(this@MainActivity,
                    leftValue.toString(),Toast.LENGTH_LONG).show()
            }
  
            override fun onStartTrackingTouch(view: RangeSeekBar?,
                         isLeft: Boolean) {
            }
  
            override fun onStopTrackingTouch(view: RangeSeekBar?, 
                         isLeft: Boolean) {
            }
        })
    }
}

Producción:

Consulte la documentación oficial para obtener más información. 
 

Publicación traducida automáticamente

Artículo escrito por madhavmaheshwarimm20 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 *