BaseRecyclerViewAdapterHelper
BaseRecyclerViewAdapterHelper copied to clipboard
BaseRecyclerViewAdapterHelper recyclerview 嵌套 recyclerview
当我在首页多布局
首页
View view = inflater.inflate(R.layout.fragment_discover_layout, parent, false);
RecyclerView recyclerView = view.findViewById(R.id.discover_view);
initRefreshLayout(view);
discoverAdapter = new DiscoverAdapter(getContext(),allData);
discoverAdapter.setUseEmpty(false);
// discoverAdapter.isUseEmpty(false); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext()); linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); // linearLayoutManager.setRecycleChildrenOnDetach(true); recyclerView.setLayoutManager(linearLayoutManager); // recyclerView.setHasFixedSize(true); recyclerView.setAdapter(discoverAdapter); discoverAdapter.notifyDataSetChanged();
多布局adapter public DiscoverAdapter(Context context, List<DiscoverBto> data) { super(data); this.mContext = context; addItemType(DiscoverBto.TYPE_DISCOVER_BANNER, R.layout.layout_discover_banner); addItemType(DiscoverBto.TYPE_DISCOVER_MONTH, R.layout.layout_month_discover_view);
case DiscoverBto.TYPE_DISCOVER_MONTH: RecyclerView discoverMonthView = (RecyclerView) helper.getView(R.id.discover_view_month); if (mContext != null) { DiscoverMonthAdapter storeMonthAdapter = new DiscoverMonthAdapter(R.layout.item_discover_month, item.getMediaList()); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this.mContext); if (discoverMonthView != null && linearLayoutManager != null) { linearLayoutManager.setRecycleChildrenOnDetach(true); linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); discoverMonthView.setLayoutManager(linearLayoutManager); discoverMonthView.setHasFixedSize(true);
discoverMonthView.setAdapter(storeMonthAdapter);
storeMonthAdapter.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
// ARouter.getInstance().build("/drama/details").navigation();
ARouter.getInstance().build("/audio/circle/player").navigation();
}
});
}
} else {
Log.d("AudioAdapter>>>>", "famous context is null");
}
此处的多布局 BaseMultiItemQuickAdapter 代码没有问题 但是第一次加载都是空白需要拉一下才能展示
首页
<cn.bingoogolapple.refreshlayout.BGARefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/discover_refresh" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:layout_marginTop="@dimen/dp_3"
android:id="@+id/discover_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</cn.bingoogolapple.refreshlayout.BGARefreshLayout>
子页嵌套的recyclerview代码也很简单
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:orientation="vertical">
开始我以为是数据加载慢了,但是放在内存缓存里依然出现加载空白 布局管理器肯定是设置了,一直出现需要点一下页面或者切换bottombar 就能瞬间展示不明白什么bug,有么有遇到过 代码是照着例子的多布局写的
同样的做法换个布局都正常只要使用baserecyclerviewadater 就出现空白
没人遇到这种recyclerview 嵌套 不显示 要刷新或者点击才显示内容的问题嘛?
我也遇到了,RecyclerView嵌套RecyclerView,子RecyclerView中数据过多的直接显示很高一段空白,数据少的能正常显示