仅在滚动后才填充子recyclerView数据

时间:2020-05-13 05:52:12

标签: android android-recyclerview

我有一个嵌套的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的数据。

0 个答案:

没有答案
相关问题