问题:在UltimateRecyclerView加载条目的时候,出现的异常。出现的前提是数据的长度为0
资料:在google了 ViewStub之后明白了其中的原因
官方的解释:A ViewStub is an invisible, zero-sized View that can be used to lazily inflate layout resources at runtime. -- 他是一个不可见的, 0大小的用来懒加载布局资源的view。
理解: List View加载一个个的条目时,就是先用一个ViewStub站住位置,在inflate之后,就显示了我们的item了。
为什么这样做呢?
<ViewStub android:id="@+id/stub"
android:inflatedId="@+id/subTree"
android:layout="@layout/mySubTree"
android:layout_width="120dip"
android:layout_height="40dip" />
现在大小为0,不可见的
mySubTree是我们想要填充的布局,如何得到这个布局
ViewStub stub = (ViewStub) findViewById(R.id.stub);
View inflated = stub.inflate();
现在就变成了宽120,高40 的view了
This lets applications get a reference to the inflated View without executing an extra findViewById().
这样做的好处是,可以直接得到view的引用而不需要额外的findViewById了。
所以,这个异常的原因就是,android:layout="@layout/mySubTree"为空,我们可以设置一个空的资源。
app:recyclerviewEmptyView="@layout/view_empty"
如下:
<com.marshalchen.ultimaterecyclerview.UltimateRecyclerView
android:id="@+id/ultimate_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/detail_title"
app:recyclerviewEmptyView="@layout/view_empty"
android:layout_marginBottom="45dp"
android:background="#FFFFFF">
</com.marshalchen.ultimaterecyclerview.UltimateRecyclerView>
希望可以帮到您~~~