Cómo implementar la carga pull-up de RecyelerView
//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.