SmartRefreshLayout despliegue la actualización y tire hacia arriba para cargar más procesamiento de datos

Es lo más común cargar y actualizar datos de paginación en el proyecto. Usando el control SmartRefreshLayout, el control se cambia a un control de actualización más completo, que vale la pena estudiar en profundidad.

dirección de github: https://github.com/scwang90/SmartRefreshLayout

1. La página de inicio presenta la base del código de control de actualización en lib-base (un proyecto dedicado a la biblioteca):

api 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'  //1.0.5及以前版本的老用户升级需谨慎,API改动过大

2. Luego, escriba el diseño en el archivo de diseño xml:

<com.scwang.smartrefresh.layout.SmartRefreshLayout
        android:id="@+id/srl_deal_flow"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:srlEnableScrollContentWhenLoaded="true"
        app:srlEnableFooterFollowWhenLoadFinished="true">

 // RecyclerView 控件

</com.scwang.smartrefresh.layout.SmartRefreshLayout>

3. No hay mucho que decir sobre la inicialización de controles,

4. Tire hacia abajo para actualizar y tire hacia arriba para cargar más métodos para llamar a datos de red:

private int page = 1; 
// 下面10为offset 偏移量
mSrl_dealFlow.setOnRefreshListener(new OnRefreshListener() {
            @Override
            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
                mSrl_dealFlow.getLayout().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        page = 1;
                        // 四个参数
                        getRechargeData(DateUtil.getYear(),DateUtil.getMonth(),page,10);
                        mSrl_dealFlow.finishRefresh();
                        mSrl_dealFlow.resetNoMoreData();//setNoMoreData(false);
                    }
                },2000);

            }
        });
        mSrl_dealFlow.setOnLoadMoreListener(new OnLoadMoreListener() {
            @Override
            public void onLoadMore(@NonNull final RefreshLayout refreshLayout) {
                mSrl_dealFlow.getLayout().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        if (commonDealFlowAdapter.getCount() > 30) {
                            ToastUtil.show(getActivity(),"数据全部加载完毕");
                            refreshLayout.finishLoadMoreWithNoMoreData();//将不会再次触发加载更多事件
                        } else {
                            page++;
                            // 两个参数
                            getRechargeData(page,10);
                            refreshLayout.finishLoadMore();
                        }
                    }
                },2000);
            }
        });

5. Al inicializar la colección de Lista, es necesario inicializar al inicializar datos:

 @Override
    public void initData(Bundle savedInstanceState) {
        mRechargeList = ObjectUtil.newArrayList();
        getRechargeData(1,10);
    }

6. Al procesar los datos devueltos por el servidor, debe prestar atención cuando el valor de la página es 1, que es la primera página, debe borrar los datos en la colección de la Lista, esta vez es para actualizar los datos

private void processRechargeData(String str) {
        if(page == 1){
            mRechargeList.clear();
        }

 

 

 

 

 

 

 

 

 

Publicado 57 artículos originales · me gusta 0 · 10,000+ visitas

Supongo que te gusta

Origin blog.csdn.net/java9832/article/details/104829965
Recomendado
Clasificación