BottomSheet中的RecyclerView不可见

问题描述 投票:0回答:1

我想创建一个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);
        });
java android android-recyclerview recycler-adapter bottom-sheet
1个回答
0
投票

您需要将布局管理器添加到recyclerview才能显示该项目,>

recyclerView.setLayoutManager(new LinearLayoutManager(context);

默认情况下,它将创建垂直布局管理器以垂直显示项目,尽管可以使用水平和网格管理器等

© www.soinside.com 2019 - 2024. All rights reserved.