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。
是的。正如我所提到的,項目出現在一些用戶界面事件之後。 –