4
我有一个RecyclerView,这是一个BottomSheet,从23.2支持库:RecyclerView不显示数据
<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显示项目:
- 我更改其他视图的可见性;
- 我点击RecyclerView
我试过许多东西。
首先,在添加项目后改变RecyclerView的可见性,但似乎有一段时间必须通过才能生效。
我尝试了几种方法:requestLayout,invalidate。
是的。正如我所提到的,项目出现在一些用户界面事件之后。 –