Red de conocimiento informático - Material del sitio web - Cómo implementar la carga pull-up de RecyelerView

Cómo implementar la carga pull-up de RecyelerView

1. Defina su propia etiqueta anulando el método getItemViewType de la siguiente manera:

//Rellene diferentes ViewHolders según el tipo de retorno.

@override

public int getItemViewType(int posición){

if(posición+1 == getItemCount()){

Devolver TYPE _ FOOT

} En caso contrario {

Devolver TYPE _ NORMAL

}

}

2. La etiqueta de retorno definida aquí se volverá a llamar en el método onCreateViewHolder, que es el parámetro viewType. En función de este tipo de vista, construiremos nuestros diferentes diseños, que son titulares de vistas.

@Override

Vista de reciclaje público. titular de la vista oncreateview titular (grupo de vistas principal, int viewType) {

RecyclerView. Titular de ViewHolder = null

if (viewType == TYPE_NORMAL) {

titular = new ItemViewHolder(layoutinflater. from(

Context).inflate(R.layout .recycle_item, parent,

false));

} else if (viewType == TYPE_FOOT) {

//Diseño de carga inferior

holder = new FootViewHolder(layoutinflater. from(context)

.inflate(R.layout.itemfooter, parent, false)); Titular de la orden de devolución;

}

Una cosa a tener en cuenta aquí es que ocupamos el elemento inferior, por lo que al anular el método getItemCount, debemos agregar el último elemento de datos; de lo contrario, los datos no son iguales.

@override

public int getItemCount() {

return msg _ list . p>

3. Supervise el evento deslizante de recyclerView.

//Monitor deslizante del servicio de reciclaje

mrecyclerview.addonscrolllistener(new RecyclerView.onscrollistener(){

@overlay

public void onScrollStateChanged(RecyclerView RecyclerView, int newState) {

super .onscrollstatechanged(recycler view, new state);

//Monitorear si alcanza la posición de deslizamiento obtenida en tiempo real a continuación. , actualice los datos

//Condiciones de juicio: 1. Deslícese hacia abajo; 2. El estado permanece estable y no se desliza hacia arriba o hacia abajo

if(new state =). = vista de reciclaje.

scroll_status_idle& amp& amplastVisibleItem + 1

= = reciclar _ adaptador . getitemcount()){

mhandler publicación retrasada (new Runnable(){

@Override

Public void run(){

//Realizar internamente una operación de actualización de datos retrasada

now _ num = now _ num+3;//Número de tiras. cargado al mismo tiempo

initData();

recycle _ adaptor .notifydatasetchanged();

mswiperefreshlayout . p>}

},1000);

}

}

@cover

Vacío público en scrolled(RecyclerView RecyclerView, int dx, int dy) {

super.onScrolled(recyclerView, dx, dy);

linearrayoutmanager lm = (linearrayoutmanager)reciclar vista getlayoutmanager();

//Obtiene la posición actual al deslizar.

lastVisibleItem = lm . findlastvisibleitemposition();

}

});

}

En este De esta manera, se completa la carga pull-up de RecyelerView.