Selector de tiempo de diseño de materiales en Android

Material Design Components (MDC Android) ofrece a los diseñadores y desarrolladores una forma de implementar Material Design en su aplicación de Android. Desarrollados por un equipo central de ingenieros y diseñadores de UX en Google, estos componentes permiten un flujo de trabajo de desarrollo confiable para crear aplicaciones de Android atractivas y funcionales. Si le gusta la forma en que los elementos de la interfaz de usuario de Google Material Design Components para Android que están diseñados por Google son bastante impresionantes, aquí hay algunos pasos que deben seguirse para obtenerlos, y uno de ellos es Time Picker. No es lo mismo que el selector de tiempo regular en Android y permite mucha personalización para mejorar la experiencia del usuario. Da una experiencia inmensa para el usuario. Entonces, en este artículo, se discutió cómo implementar el Selector de tiempo de diseño de materiales en Android.

Material Design Time Picker in Android

Pasos para implementar el selector de tiempo de Material Design

Paso 1: crear un proyecto de actividad vacío

Cree un proyecto de estudio de Android de actividad vacío. Consulte Cómo crear/iniciar un nuevo proyecto en Android Studio .

Paso 2: Agrega las dependencias requeridas

Hay una necesidad de dependencias de Material Design. Al archivo Gradle de nivel de aplicación, agregue la siguiente dependencia.

// La versión 1.3.0-alpha04 puede variar

implementación ‘com.google.android.material:material:1.3.0-alpha04’

Paso 3: trabajar con el archivo activity_main.xml

  • El diseño principal de la aplicación contiene un botón y un TextView . El botón abre el selector de tiempo de Material Design y TextView muestra una vista previa del tiempo elegido.
  • Para implementar la misma interfaz de usuario, invoque el siguiente código dentro del archivo activity_main.xml .

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"
    tools:ignore="HardcodedText">
  
    <Button
        android:id="@+id/pick_time_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="128dp"
        android:text="PICK TIME"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
  
    <TextView
        android:id="@+id/preview_picked_time_textView"
        style="@style/TextAppearance.MaterialComponents.Headline6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="32dp"
        android:text="Preview picked time here"
        app:layout_constraintEnd_toEndOf="@+id/pick_time_button"
        app:layout_constraintStart_toStartOf="@+id/pick_time_button"
        app:layout_constraintTop_toBottomOf="@+id/pick_time_button" />
  
</androidx.constraintlayout.widget.ConstraintLayout>

Interfaz de usuario de salida:

Antes de dirigirse a interactuar con la interfaz de diálogo, es importante comprender la anatomía del diálogo.

  • Anatomía del selector de tiempo de MDC (diálogo inmersivo).

Anatomy of the MDC Time Picker (immersive dialog)

  • Anatomía del selector de tiempo de MDC (compacto).

Anatomy of the MDC Time Picker (compact).

Paso 4: trabajar con el archivo MainActivity.kt

  • En el archivo MainActivity.kt , haga clic en el botón para abrir el cuadro de diálogo Selector de temporizador de diseño de materiales, busque una hora y un minuto de un solo dígito y actualice el texto de vista previa.
  • Para implementar lo mismo, invoque el siguiente código dentro del archivo MainAtivity.kt .

Kotlin

import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import com.google.android.material.timepicker.MaterialTimePicker
import com.google.android.material.timepicker.TimeFormat
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // create instance of the UI elements
        val pickTimeButton: Button = findViewById(R.id.pick_time_button)
        val previewPickedTimeTextView: TextView = findViewById(R.id.preview_picked_time_textView)
  
        // handle the pick time button to open
        pickTimeButton.setOnClickListener {
  
            // instance of MDC time picker
            val materialTimePicker: MaterialTimePicker = MaterialTimePicker.Builder()
                // set the title for the alert dialog
                .setTitleText("SELECT YOUR TIMING")
                // set the default hour for the 
                  // dialog when the dialog opens
                .setHour(12)
                // set the default minute for the
                  // dialog when the dialog opens
                .setMinute(10)
                // set the time format 
                  // according to the region
                .setTimeFormat(TimeFormat.CLOCK_12H)
                .build()
  
            materialTimePicker.show(supportFragmentManager, "MainActivity")
  
            // on clicking the positive button of the time picker 
              // dialog update the TextView accordingly
            materialTimePicker.addOnPositiveButtonClickListener {
  
                val pickedHour: Int = materialTimePicker.hour
                val pickedMinute: Int = materialTimePicker.minute
  
                // check for single digit hour hour and minute
                  // and update TextView accordingly
                val formattedTime: String = when {
                    pickedHour > 12 -> {
                        if (pickedMinute < 10) {
                            "${materialTimePicker.hour - 12}:0${materialTimePicker.minute} pm"
                        } else {
                            "${materialTimePicker.hour - 12}:${materialTimePicker.minute} pm"
                        }
                    }
                    pickedHour == 12 -> {
                        if (pickedMinute < 10) {
                            "${materialTimePicker.hour}:0${materialTimePicker.minute} pm"
                        } else {
                            "${materialTimePicker.hour}:${materialTimePicker.minute} pm"
                        }
                    }
                    pickedHour == 0 -> {
                        if (pickedMinute < 10) {
                            "${materialTimePicker.hour + 12}:0${materialTimePicker.minute} am"
                        } else {
                            "${materialTimePicker.hour + 12}:${materialTimePicker.minute} am"
                        }
                    }
                    else -> {
                        if (pickedMinute < 10) {
                            "${materialTimePicker.hour}:0${materialTimePicker.minute} am"
                        } else {
                            "${materialTimePicker.hour}:${materialTimePicker.minute} am"
                        }
                    }
                }
  
                // then update the preview TextView
                previewPickedTimeTextView.text = formattedTime
            }
        }
    }
}

Producción:

Publicación traducida automáticamente

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