从底部弹出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();
}