Aspsine / IRecyclerView

IRecyclerView is a custom RecyclerView that supports pull-to-refresh, pull-to-loadmore, customize refresh header and loadmore footer, add header views and footer views.
729 stars 146 forks source link

下拉刷新 设置的刷新View没有显示,但是数据刷新出来了 #43

Closed GuoZhaoHui628 closed 6 years ago

GuoZhaoHui628 commented 6 years ago

大佬 你好! 如题 碰到这样的问题,下拉后,refershlayoutView根本没显示在列表上方,但是数据却更新了,这什么情况额,我看了下issues 有好几人也是这样的,但是没留下答案.....可以帮我瞧一瞧么

    <com.aspsine.irecyclerview.IRecyclerView
        app:refreshEnabled="true"
        app:refreshHeaderLayout="@layout/layout_irecyclerview_refresh_header"
        android:id="@+id/recy_devicelist"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </com.aspsine.irecyclerview.IRecyclerView>
<com.kstar.device.widget.BatVsSupperHeaderView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="80dp" />

这里的刷新view 我就是用你的例子中做了下测试 fragment中代码

implements OnRefreshListener
recyDevicelist.setOnRefreshListener(this);

*********重写的方法****
 @Override
    public void onRefresh() {
        recyDevicelist.setRefreshing(true);
        mPresenter.subDeviceChangeRequest();
    }

返回
   @Override
    public void returnDeviceChangeInfo(DeviceChangeBean deviceChangeBean) {
        LogUtils.logd(deviceChangeBean.toString());
        boolean isSuccess = deviceChangeBean.getMeta().isSuccess();
        if(isSuccess){
            List<DeviceChangeBean.DataBean.ListBean> datas = deviceChangeBean.getData().getList();
            **recyDevicelist.setRefreshing(false);**
            changeAdapter.replaceAll(datas);
        }
    }

attrs中,我看你步骤中 说要加上

    <declare-styleable name="IRecyclerView">
        <attr name="refreshHeaderLayout" format="reference" />
        <attr name="loadMoreFooterLayout" format="reference" />
        <attr name="refreshEnabled" format="boolean" />
        <attr name="loadMoreEnabled" format="boolean" />
        <attr name="refreshFinalMoveOffset" format="dimension" />
    </declare-styleable>

额,大佬 这什么情况额,麻烦了

Aspsine commented 6 years ago
@Override
public void onRefresh() {
    // recyDevicelist.setRefreshing(true);
    mPresenter.subDeviceChangeRequest();
}

onRefresh不应该调用recyDevicelist.setRefreshing(true)

@Override
public void onRefresh() {
    mPresenter.subDeviceChangeRequest(new Callback{
        void onSuccess(List<Data> datas){
            recyDevicelist.setRefreshing(false);
            mApdater.setDatas(datas);
        }
    });
}