Es de suponer que ya no todo el mundo desconoce la forma de expresión de lista. Hay listas de contactos, listas de archivos, listas de mensajes de texto , etc. en su teléfono. Este artículo habla sobre el uso de RecyclerView para lograr efectos de lista en el desarrollo de Android.
Pasos para el uso
Presentamos RecyclerView
Agregue una referencia en el archivo build.gradle de la aplicación. Estamos usando el paquete androidx.
gradle:
dependencies {
// ...
implementation 'androidx.recyclerview:recyclerview:1.1.0'
}
preparación de datos
Primero decida qué tipo de datos desea mostrar. ¿Es información del usuario, contactos o archivos? Aquí tomamos personajes como ejemplo. Antes de escribir código, primero consideramos los requisitos, es decir, cómo mostrar y cómo mostrar los datos. En el trabajo diario, suele haber representaciones de la interfaz de usuario. El diseño artístico de este artículo fue creado por nosotros mismos.
Por ejemplo, mostrar a
y 97
.
ViewHolder y diseño
Los datos que se mostrarán ahora están determinados. para diseñar el rendimiento de la interfaz de usuario. El diseño está estrechamente relacionado con ViewHolder. Antes de diseñar la clase Adaptador, sería mejor escribir primero la clase ViewHolder.
Cree un nuevo archivo de diseño que defina el elemento (elemento de lista) item_letter.xml
.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000" />
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000" />
</LinearLayout>
Aquí se utilizan clases internas y la clase ViewHolder se escribe en la clase Actividad.
Crear clase VH
private class VH extends RecyclerView.ViewHolder {
TextView tv1;
TextView tv2;
public VH(@NonNull View itemView) {
super(itemView);
tv1 = itemView.findViewById(R.id.tv1);
tv2 = itemView.findViewById(R.id.tv2);
}
}
Como se puede ver en lo anterior, el diseño de ViewHolder y el elemento están estrechamente relacionados. La identificación en el diseño es relativamente sencilla de escribir. En proyectos reales, se pueden nombrar algunas identificaciones más significativas.
En el archivo de diseño de la actividad, agregue RecyclerView .
Agregar RecyclerView al diseño
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/re_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
Adaptador de diseño
Diseñe un adaptador que herede de RecyclerView.Adapter<VH>
.
Aquí VH
está el ViewHolder que escribimos anteriormente.
LetterAdapter
tiene su propia lista de datos. Es necesario implementar 3 métodos.
onCreateViewHolder
Método necesario para devolver el objeto VH.
- 这里就是创建VH对象并返回。而VH构造器要求传入一个View,我们利用`LayoutInflater`创建一个view给它。当然,创建的根据就是前面设计好的`item_letter`。
Adaptador de letras:
private class LetterAdapter extends RecyclerView.Adapter<VH> {
private List<Character> dataList;
public LetterAdapter(List<Character> dataList) {
this.dataList = dataList;
}
@NonNull
@Override
public VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new VH(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_letter, parent, false));
}
@Override
public void onBindViewHolder(@NonNull VH holder, int position) {
Character c = dataList.get(position);
holder.tv1.setText(c.toString());
holder.tv2.setText(String.valueOf(Integer.valueOf(c)));
}
@Override
public int getItemCount() {
return dataList.size();
}
}
Si es descuidado, puede olvidarse de inicializar la lista de datos en el adaptador. null pointer
Se informará una excepción.
ConfiguraciónRecyclerView
Se inicializa en el método onCreate de Actividad.
RecyclerView requiere 2 configuraciones, adaptador y LayoutManager . El adaptador es el que pedimos arriba. Aquí se utiliza LayoutManager LinearLayoutManager
, especificando la dirección vertical, de modo que obtendremos una lista que se desliza hacia arriba y hacia abajo.
Usando LinearLayoutManager
List<Character> characterList = new ArrayList<>();
for (char c = 'a'; c <= 'z'; c++) {
characterList.add(c);
}
mLetterAdapter = new LetterAdapter(characterList);
RecyclerView letterReView = findViewById(R.id.re_view);
letterReView.setAdapter(mLetterAdapter);
letterReView.setLayoutManager(new LinearLayoutManager(this, RecyclerView.VERTICAL, false));` </pre></details>
Observa los resultados de la carrera.
Ejecútalo en tu teléfono o emulador y abre esta actividad. Algunos amigos han descubierto por qué un subelemento de la pantalla ocupa toda la pantalla.
Porque los elementos que configuramos anteriormente ocupan la pantalla. Regrese item_letter.xml
y eche un vistazo a la configuración del diseño raíz. Cambie layout_height="match_parent"
la configuración en wrap_content
. Vuelva a compilarlo, ejecútelo y vea el resultado.
También podemos establecer una altura fija para el diseño raíz. Depende del diseño artístico y las necesidades.
Comparte una última vez
[Producido por el equipo técnico de Tencent] Comenzando con Android desde cero hasta dominarlo, tutorial de instalación de Android Studio + conjunto completo de tutoriales básicos de Android
Tutorial introductorio a la programación de Android
Conceptos básicos del lenguaje Java desde la entrada hasta la familiaridad
Conceptos básicos del lenguaje Kotlin desde la entrada hasta la familiaridad
Pila de tecnología Android desde la entrada hasta la familiaridad
Aprendizaje integral sobre Android Jetpack
Para los principiantes, puede resultar difícil instalar Android Studio. Puede ver el siguiente vídeo para aprender cómo instalarlo y ejecutarlo paso a paso.
Tutorial de instalación de Android Studio
Con la etapa de aprendizaje de Java, se recomienda centrarse en el aprendizaje por video en esta etapa y complementarlo con la revisión de libros y completar los vacíos. Si se centra principalmente en libros, puede escribir el código basándose en las explicaciones del libro, complementado con vídeos didácticos para comprobar si hay omisiones y rellenar los huecos. Si tiene problemas, puede ir a Baidu. Generalmente, muchas personas encontrarán problemas de nivel de entrada y darán mejores respuestas.
Debe dominar los puntos de conocimiento básicos, como cómo utilizar los cuatro componentes principales, cómo crear servicios, cómo diseñar, vistas personalizadas simples, animaciones, comunicación de red y otras tecnologías comunes.
Se ha preparado un conjunto completo de tutoriales de base cero para usted. Si lo necesita, puede agregar el código QR a continuación para obtenerlo de forma gratuita.
Un conjunto completo de tutoriales básicos de Android.