我想创建一个bottomSheet
,我有recyclerView
。问题是,它没有显示我的recyclerview
。问题出在哪里?这是我的bottomSheet
类。
public class MyBottomSheetDialogFragment extends BottomSheetDialogFragment {
public static final String TAG = "ActionBottomDialog";
private Context context;
public MyBottomSheetDialogFragment(Context context) {
this.context = context;
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.layout_wishlist_move_to, container, false);
final RecyclerView recyclerView = view.findViewById(R.id.recycler_bottom_sheet_move_to);
List<String> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
list.add("Birthday " + i);
}
Adapter mAdapter = new Adapter(list);
recyclerView.setAdapter(mAdapter);
return view;
}
private class Adapter extends RecyclerView.Adapter<Adapter.BottomSheetHolder> {
private List<String> myList;
private Adapter(List<String> list) {
this.myList = list;
}
@NonNull
@Override
public Adapter.BottomSheetHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(context);
return new BottomSheetHolder(inflater.inflate(R.layout.item_wishlist_bottom_sheet, parent, false));
}
@Override
public void onBindViewHolder(@NonNull Adapter.BottomSheetHolder holder, int position) {
if (myList.size() == 0) return;
holder.labelTitleCategory.setText(myList.get(position));
holder.labelImage.setImageResource(R.drawable.ic_icon);
}
@Override
public int getItemCount() {
return myList.size();
}
private class BottomSheetHolder extends RecyclerView.ViewHolder {
final TextView labelTitleCategory;
final ImageView labelImage;
public BottomSheetHolder(@NonNull View itemView) {
super(itemView);
labelTitleCategory = itemView.findViewById(R.id.title);
labelImage = itemView.findViewById(R.id.image);
}
}
}
}
这里是班级,在这里显示对话框。
button.setOnClickListener(v -> {
MyBottomSheetDialogFragment dialogWish = new MyBottomSheetDialogFragment(getContext());
dialogWish.show(getFragmentManager(), WishListBottomSheetDialogFragment.TAG);
});
您需要将布局管理器添加到recyclerview才能显示该项目,>
recyclerView.setLayoutManager(new LinearLayoutManager(context);
默认情况下,它将创建垂直布局管理器以垂直显示项目,尽管可以使用水平和网格管理器等