Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Adapter 一些建议

Abierto
#88 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
android, java
Área
mobile

Línea de trabajo

Empieza leyendo las APIs de LoadMoreAdapter, MultiItemTypeAdapter e ItemViewDelegate, centrándote en los métodos indicados y en el comportamiento del constructor. Separa los cuatro cambios propuestos en decisiones con alcance independiente; se considera hecho cuando los maintainers hayan acordado un alcance concreto y el comportamiento afectado esté cubierto por las comprobaciones existentes del repositorio.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

你好,看了你的代码,觉得很不错。在使用这个库的时候有几个想法:

关于LoadMoreAdapter

  1. 关于设置:hasLoadMore 这个方法是private。为什么不能设置 getter setter?很多时候加载更多的时候,如果没有更多的时候,能简单的设置hasLoadMore 不是更好吗?

  2. 错误处理,如果我在加载loadMore的时候,如果出现错误,如何显示一个错误的item?点击重新刷新?

关于 MultiItemTypeAdapter 数据安全 :

  1. 你的adapter 的 构造函数里面要求传入 List, 你将传入的赋予mData。 其实我觉得最好是你自己内部建立一个空的List, 避免null指针
public class MultiItemTypeAdapter<T> extends RecyclerView.Adapter<ViewHolder> {
    protected Context mContext;
    protected List<T> mDatas = new ArrayList<>();

    protected ItemViewDelegateManager mItemViewDelegateManager = new ItemViewDelegateManager();
    protected OnItemClickListener mOnItemClickListener;


    public MultiItemTypeAdapter(Context context) {
        mContext = context;
    }

    public void addData(List<T> datas) {
        mDatas.addAll(datas);
    }

    public void setData(List<T> datas) {
        mDatas.clear();
        mDatas.addAll(datas);
    }

关于 ItemViewDelegate

RecycleViewAdapter 有两个基本方法:
onCreateViewHolder
onBindViewHolder

个人觉得可以把 ItemViewDelegate#convert(ViewHolder holder, T t, int position); 分为两个方法 :

void create(View view); 这个方法用来初始化ViewHolder里面的Views (现在很多人喜欢用 butterKnife)这个方法在 onCreateViewHolder 调用

void convert(T t, int position); 这个方法在 onBindViewHolder 调用
因为在create()里面已经初始化了所有views 所以就不需要 ViewHolder holder 来调用 譬如
holder.setText() 这样的方法

Lenguaje dominante
Java
Estrellas
4.7k
Forks
1.2k
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de hongyangAndroid/baseAdapter

Todos los issues de hongyangAndroid/baseAdapter

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.