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 .
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