通过BottomSheetDialog弹出的RecyclerView列表复用后需要点击两次才触发该怎么解决呢?

从底部弹出RecyclerView框,弹出框的布局我写死了高度,也就是说recyclerview列表数据太多的话显示不完,需要往上滑动,点击刚弹出框可见的item一次可以,但是复用后的item为什么需要点击两次呢?下面是弹出框和点击代码:
图片描述

1.弹出框代码:

   public void showCategoryDialog() {
        mDialog = new BottomSheetDialog(mContext);
        mDialog.setContentView(R.layout.dialog_category);
        RecyclerView recyclerView = mDialog.findViewById(R.id.rv_dialog_category);
        for (int i = 0; i < categoryTitles.length; i++) {
            CategoryBean bean=new CategoryBean();
            bean.setTitle(categoryTitles[i]);
            mCategoryDatas.add(bean);
        }
        if(mCategoryAdapter==null){
            mCategoryAdapter=new CategoryAdapter(R.layout.item_category,mCategoryDatas);
        }
        LinearLayoutManager manager=new LinearLayoutManager(mContext);
        manager.setOrientation(LinearLayoutManager.VERTICAL);
        recyclerView.setLayoutManager(manager);
        recyclerView.setLayoutManager(manager);
        recyclerView.setAdapter(mCategoryAdapter);
        mDialog.show();
        mCategoryAdapter.setOnItemClickListener(this);
    }

2.子item点击代码:

  public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
        //todo:复用后底部item需要点击两次才触发
        if(adapter instanceof IndustryAdapter){
            IndustryBean bean = mDatas.get(position);
            String title = bean.getTitle();
            mIndustry.setText(title);
        }else if(adapter instanceof CategoryAdapter){
            CategoryBean bean = mCategoryDatas.get(position);
            String title = bean.getTitle();
            mCategory.setText(title);
        }
        mDialog.dismiss();
    }
阅读 6.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题