设置适配器后,RecyclerView的大小不会改变

时间:2015-04-20 08:05:57

标签: android android-recyclerview

在片段中,我在RecyclerView的{​​{1}}上设置了布局管理器: -

onActivityCreated

然后我执行galleryRecView.setLayoutManager(new LinearLayoutManager(getActivity())); ,下载要在RecyclerView中设置的数据。

现在我在RecyclerView上设置了适配器: -

AsyncTask

问题: -

public void onPhotosURLsReceived(boolean success) { if (success && isAdded()) galleryRecView.setAdapter(new GalleryAdapter(getActivity(), Constants.photosList)); } ' RecyclerView设置为layout_height。所以在启动时,当RecyclerView上没有设置适配器时,它的高度为0dp。当我在AsyncTask结束后设置适配器时,它仍然保持在0dp,没有任何东西可以看到。这对wrap_content来说绝不是问题。

注意: -

我得到此列表后,我计划将其转换为非滚动的RecyclerView,以便在ListViewscrollView内使用swipeLayout并覆盖RecyclerView像这样: -

onMeasure

1 个答案:

答案 0 :(得分:2)

原来RecyclerView内的ScrollView是个问题。

我删除了ScrollView,并通过覆盖getItemViewType(int position)将RecyclerView内部的内容作为另一种视图类型放入RecyclerView内。

这不仅解决了问题,还摆脱了对非滚动RecyclerView的需求。非滚动的RecyclerView不会回收视图,它的目的也会失败。