Arrastrar y soltar usando DragLinearLayout en Android con ejemplo

En la mayoría de las aplicaciones de la lista de tareas pendientes, necesitamos crear una vista para que el usuario pueda priorizar sus tareas diarias de acuerdo con su prioridad. Para que esta función funcione, debería poder arrastrar y soltar elementos de visualización. Para agregar este tipo de funcionalidad dentro de nuestra aplicación, debemos usar DragLinearLayout dentro de nuestra aplicación. En este artículo, veremos cómo podemos agregar la funcionalidad de arrastrar y soltar para que cada vista cambie la posición de la vista. Para esta función, debemos agregar una biblioteca para DragLinearLayout. 

Implementación de la biblioteca DragLinearLayout

Usando DragLinearLayout podemos crear una vista principal dentro de la cual podemos hacer que nuestro elemento secundario se pueda arrastrar. A continuación se proporciona un GIF de muestra a partir del cual podemos tener una idea de lo que vamos a hacer en este artículo. Tenga en cuenta que vamos a implementar este proyecto utilizando el lenguaje Java

Drag and Drop using DragLinearLayout

Implementación paso a paso

Paso 1: Crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Asegúrese de seleccionar Java como lenguaje de programación.

Paso 2: Agregar dependencia a build.gradle (Módulo: aplicación)

Navegue a Gradle Scripts > build.gradle(Module:app) y agregue la siguiente dependencia en la sección de dependencias. 

implementación ‘com.jmedeisis:draglinearlayout:1.1.0’

Ahora sincroniza el proyecto.

Paso 3: Modifique el archivo strings.xml

A continuación se muestra el código del archivo strings.xml .

XML

<resources>
    <string name="app_name">GFG App</string>
    <string name="image_desc">image</string>
    <string name="dsa_course">DSA Course</string>
    <string name="geeks_for_geeks">Geeks for Geeks</string>
</resources>

Paso 4: trabajar con el archivo activity_main.xml

Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo   activity_main.xml .

XML

<?xml version="1.0" encoding="utf-8"?>
<com.jmedeisis.draglinearlayout.DragLinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
  
    <!--Parent layout is a Draglinearlayout
        whose orientation is vertical and
        we have to provide id to it.-->
  
    <!--below is a simple image view -->
    <ImageView
        android:id="@+id/idIVlogo"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:contentDescription="@string/image_desc"
        android:src="@drawable/gfgimage" />
  
    <!--below is the simple text view-->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/purple_500"
        android:padding="20dp"
        android:text="@string/geeks_for_geeks"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textSize="20sp"
        android:textStyle="bold" />
  
    <!--below is the simple text view-->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/purple_500"
        android:padding="10dp"
        android:text="@string/dsa_course"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textSize="20sp"
        android:textStyle="bold" />
      
</com.jmedeisis.draglinearlayout.DragLinearLayout>

Paso 5: trabajar con el archivo MainActivity.java

Vaya a la aplicación > java > el nombre del paquete de su aplicación > archivo MainActivity.java y abra el archivo MainActivity.java. A continuación se muestra el código del archivo MainActivity.java . Se agregan comentarios dentro del código para comprender el código con más detalle. 

Java

import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import com.jmedeisis.draglinearlayout.DragLinearLayout;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // below lines is to initialize our Drag linear layout
        DragLinearLayout dragLayout = findViewById(R.id.container);
  
        // we are creating for loop for dragging 
        // and dropping of child items.
        for (int i = 0; i < dragLayout.getChildCount(); i++) {
            
            // below is the child inside dragger layout
            View child = dragLayout.getChildAt(i);
            
            // below line will set all children draggable
              // except the header layout.
              // the child is its own drag handle.
            dragLayout.setViewDraggable(child, child);
        }
    }
}

Producción: 

Mira el proyecto: https://github.com/ChaitanyaMunje/GFGImageSlider/tree/DragLinearLayout

Publicación traducida automáticamente

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