我有一个嵌套的RecyclerView,其中每个父recyclerView项都有一个子recyclerView。在子recyclerView中,当一个子recyclerView上的按钮加载时,每个项目都有一个切换按钮。当我获得这组新数据时,我再次重置了子适配器。但是只有当我滚动childRecyclerView时,新数据才可见。
下面是我的代码,我在其中重置适配器:
if (isChecked) {
CommonUtilities.trackEvent(mTracker, "Toggle Button", "Makeup Category" + " " + categoryName, "Toggles to Advance");
videosArrayList.clear();
allVideoExceptPersonalizedList.clear();
allVideoArrayList.clear();
priority = 1;
setDataForCategory(1, holder, position);
if (videosArrayList.size() > 0) {
holder.recyclerView_tutorial_personalized.setVisibility(View.VISIBLE);
holder.txt_personalized_video.setVisibility(View.VISIBLE);
} else {
holder.recyclerView_tutorial_personalized.setVisibility(View.GONE);
holder.txt_personalized_video.setVisibility(View.GONE);
}
if (allVideoExceptPersonalizedList.size() > 0) {
// holder.mAdapter.UpdateList(newList);
holder.recyclerView_tutorial_all_video.setVisibility(View.VISIBLE);
holder.txt_all_video.setVisibility(View.VISIBLE);
} else {
holder.recyclerView_tutorial_all_video.setVisibility(View.GONE);
holder.txt_all_video.setVisibility(View.GONE);
}
holder.mAdapter = null;
mFrg.getParentFragment();
holder.mAdapter = new TutorialVideoAdapter(mctx, mFrg, mTracker, videosArrayList,
parentView, parent_fragment, catList.get(position), parentCategoryId,
holder.recyclerView_tutorial_personalized, new ITutorialImageClick() {
@Override
public void imageOnClick(View v, int position) {
int newTutorialCount = tutorialViewModel.getNewTutorialCount(categoryName, myParams, priority);
holder.img_category.setBadgeValue(newTutorialCount);
}
});
holder.recyclerView_tutorial_personalized.setAdapter(holder.mAdapter);
holder.recyclerView_tutorial_personalized.setLayoutManager(new GridLayoutManager(mctx, 3));
holder.recyclerView_tutorial_personalized.invalidate();
//setting all videos
holder.mAllVideoAdapter = null;
holder.mAllVideoAdapter = new TutorialAllVideoAdapter(mctx, mFrg, mTracker, allVideoArrayList,
parentView, parent_fragment, catList.get(position), parentCategoryId,
holder.recyclerView_tutorial_all_video, new ITutorialImageClick() {
@Override
public void imageOnClick(View v, int position) {
int newTutorialCount = tutorialViewModel.getNewTutorialCount(categoryName, myParams, priority);
holder.img_category.setBadgeValue(newTutorialCount);
}
});
holder.recyclerView_tutorial_all_video.setAdapter(holder.mAllVideoAdapter);
holder.recyclerView_tutorial_all_video.setLayoutManager(new GridLayoutManager(mctx, 3));
holder.recyclerView_tutorial_all_video.invalidate();
}
重置适配器后无需滚动即可填充子recyclerView的数据。