android | Reciclador horizontalVer con ejemplos

RecyclerView es un ViewGroup agregado al estudio de Android como sucesor de GridView y ListView . Es una mejora en ambos y se puede encontrar en los últimos paquetes de soporte v-7. Ha sido creado para hacer posible la construcción de cualquier lista con diseños XML como un elemento que se puede personalizar enormemente mientras se mejora la eficiencia de ListViews y GridViews. Esta mejora se consigue reciclando las vistas que quedan fuera de la visibilidad del usuario.

Por ejemplo: si un usuario se desplazó hacia abajo hasta una posición en la que se ven los elementos 4 y 5; los elementos 1, 2 y 3 se borrarían de la memoria para reducir el consumo de memoria.

En este artículo, aprenderemos cómo crear una vista de reciclador que se puede desplazar en dirección horizontal.

Aquí están los pasos detallados:

  1. Paso 1: agregue la dependencia del widget Recycler View en su proyecto
    • La última dependencia para Recycler View es:
      implementation 'com.android.support:recyclerview-v7:28.0.0'
      
    • Agregue también la dependencia para Card View. La última dependencia para Card View es:
      implementation 'com.android.support:cardview-v7:28.0.0'
      
  2. Paso 2: Configuración del archivo de diseño
    activity_main.xml El archivo de diseño activity_main.xml consta de:
    • Diseño relativo que contiene la vista del reciclador
    • Widget de vista de reciclador

    Aquí está el código completo para activity_main.xml:

    actividad_principal.xml

    <?xml version="1.0" encoding="utf-8"?>
      
    <!--Relative Layout-->
    <RelativeLayout 
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.geeksforgeeks.horizontalrecyclerview.MainActivity"
        android:id="@+id/relativelayout">
      
        <!--Recycler View widget-->
        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerview"
            android:scrollbars="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true" />
      
    </RelativeLayout>
  3. Paso 3: configurar el archivo de diseño item.xml para la vista de reciclador
    El archivo de diseño item.xml consiste en el diseño de un elemento de la vista de reciclador. El diseño del elemento contiene una vista de tarjeta con vista de texto con algo de texto.
    Aquí está el código completo para item.xml:

    elemento.xml

    <?xml version="1.0" encoding="utf-8"?>
      
    <!--Card View widget-->
    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/cardview"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        card_view:contentPadding="8dp"
        card_view:cardCornerRadius="8dp"
        card_view:cardElevation="8dp"
        card_view:cardBackgroundColor="#0F9D58"
        android:layout_margin="1dp"
        >
      
        <!--Text View over Card View-->
        <TextView
            android:id="@+id/textview"
            android:layout_gravity="center"'
            android:layout_marginTop="4dp"
            android:layout_marginBottom="4dp"
            android:textSize="22dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#fff"/>
      
    </android.support.v7.widget.CardView>
  4. Paso 4: Configuración del código para Recycler View Adapter
    El adaptador es el código principal responsable de RecyclerView . Contiene todos los métodos importantes relacionados con la implementación de RecylcerView. Los métodos básicos para una implementación exitosa son:
    • onCreateViewHolder ,
    • en BindViewHolder ,
    • getItemCount

    El adaptador se utiliza para establecer datos en Recycler View desde el origen de datos.

    Aquí está el código completo para adapter.java:

    Adaptador.java

    package com.geeksforgeeks.horizontalrecyclerview;
      
    import android.support.v7.widget.RecyclerView;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.TextView;
    import android.view.LayoutInflater;
    import java.util.List;
      
    // The adapter class which
    // extends RecyclerView Adapter
    public class Adapter
        extends RecyclerView.Adapter<Adapter.MyView> {
      
        // List with String type
        private List<String> list;
      
        // View Holder class which
        // extends RecyclerView.ViewHolder
        public class MyView
            extends RecyclerView.ViewHolder {
      
            // Text View
            TextView textView;
      
            // parameterised constructor for View Holder class
            // which takes the view as a parameter
            public MyView(View view)
            {
                super(view);
      
                // initialise TextView with id
                textView = (TextView)view
                               .findViewById(R.id.textview);
            }
        }
      
        // Constructor for adapter class
        // which takes a list of String type
        public Adapter(List<String> horizontalList)
        {
            this.list = horizontalList;
        }
      
        // Override onCreateViewHolder which deals
        // with the inflation of the card layout
        // as an item for the RecyclerView.
        @Override
        public MyView onCreateViewHolder(ViewGroup parent,
                                         int viewType)
        {
      
            // Inflate item.xml using LayoutInflator
            View itemView
                = LayoutInflater
                      .from(parent.getContext())
                      .inflate(R.layout.item,
                               parent,
                               false);
      
            // return itemView
            return new MyView(itemView);
        }
      
        // Override onBindViewHolder which deals
        // with the setting of different data
        // and methods related to clicks on
        // particular items of the RecyclerView.
        @Override
        public void onBindViewHolder(final MyView holder,
                                     final int position)
        {
      
            // Set the text of each item of
            // Recycler view with the list items
            holder.textView.setText(list.get(position));
        }
      
        // Override getItemCount which Returns
        // the length of the RecyclerView.
        @Override
        public int getItemCount()
        {
            return list.size();
        }
    }
  5. Paso 5. Configuración del código para el archivo MainActivity.java para la vista Recycler
    MainActivity contiene RecyclerView. Configure el Administrador de diseño en la vista Reciclador usando la clase LinearLayoutManager.
    Aquí está el código completo para MainActivity.java:

    MainActivity.java

    package com.geeksforgeeks.horizontalrecyclerview;
      
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.support.v7.widget.RecyclerView;
    import android.support.v7.widget.LinearLayoutManager;
    import android.view.View;
    import android.widget.Toast;
    import java.util.ArrayList;
      
    public class MainActivity extends AppCompatActivity {
      
        // Recycler View object
        RecyclerView recyclerView;
      
        // Array list for recycler view data source
        ArrayList<String> source;
      
        // Layout Manager
        RecyclerView.LayoutManager RecyclerViewLayoutManager;
      
        // adapter class object
        Adapter adapter;
      
        // Linear Layout Manager
        LinearLayoutManager HorizontalLayout;
      
        View ChildView;
        int RecyclerViewItemPosition;
      
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
      
            // initialisation with id's
            recyclerView
                = (RecyclerView)findViewById(
                    R.id.recyclerview);
            RecyclerViewLayoutManager
                = new LinearLayoutManager(
                    getApplicationContext());
      
            // Set LayoutManager on Recycler View
            recyclerView.setLayoutManager(
                RecyclerViewLayoutManager);
      
            // Adding items to RecyclerView.
            AddItemsToRecyclerViewArrayList();
      
            // calling constructor of adapter
            // with source list as a parameter
            adapter = new Adapter(source);
      
            // Set Horizontal Layout Manager
            // for Recycler view
            HorizontalLayout
                = new LinearLayoutManager(
                    MainActivity.this,
                    LinearLayoutManager.HORIZONTAL,
                    false);
            recyclerView.setLayoutManager(HorizontalLayout);
      
            // Set adapter on recycler view
            recyclerView.setAdapter(adapter);
        }
      
        // Function to add items in RecyclerView.
        public void AddItemsToRecyclerViewArrayList()
        {
            // Adding items to ArrayList
            source = new ArrayList<>();
            source.add("gfg");
            source.add("is");
            source.add("best");
            source.add("site");
            source.add("for");
            source.add("interview");
            source.add("preparation");
        }
    }

Producción:

Publicación traducida automáticamente

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