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:
- 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'
- La última dependencia para Recycler View es:
- 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
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
>
- 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
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
>
- 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();
}
}
- 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