gpt4 book ai didi

android - RecyclerView 不显示数据

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:02 28 4
gpt4 key购买 nike

我有一个来自 23.2 支持库的 RecyclerView,它是一个 BottomSheet:

<android.support.v7.widget.RecyclerView
android:id="@+id/bottom_sheet_multi_car"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_sheet_height"
android:background="@color/background"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior"/>

最初,我使用空数据集创建适配器:

    mMultiCarAdapter = new CarListRecyclerAdapter();
bottomSheetMultiCar.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST));
bottomSheetMultiCar.setLayoutManager(new LinearLayoutManager(getContext()));
bottomSheetMultiCar.setAdapter(mMultiCarAdapter);
...

public static class CarListRecyclerAdapter extends RecyclerView.Adapter<CarListRecyclerAdapter.ViewHolder> {
private List<Car> mCars = new ArrayList<>();

我有一个方法来替换我的数据:

    public void replaceItems(final List<Car> cars) {
mCars.clear();
mCars.addAll(cars);
notifyDataSetChanged();
}

我展示 RecyclerView:

private void showMultiCar(final List<Car> cars) {
mBottomSheetMultiCarBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);

mMultiCarAdapter.replaceItems(cars);
}

在我显示 RecyclerView 之后,它出现了(我看到一个带有 RecyclerView 背景色的 BottomSheet)。但是,没有任何项目是可见的……直到我采取一些行动。使 RecyclerView 显示项目的确认操作:

  • 我更改其他 View 的可见性;
  • 我点击 RecyclerView

我尝试了很多东西。

首先,在添加项目后更改 RecyclerView 的可见性,但似乎必须经过一段时间才能生效。

我在上面尝试了几种方法:requestLayout、invalidate。

最佳答案

recyclerView 需要固定大小:

mRecyclerView.setHasFixedSize(true);

花了太长时间才弄明白这一点。不确定为什么它有效,但它确实有效。

关于android - RecyclerView 不显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35748888/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com