ViewStub must have a valid layoutResource

问题:在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>

希望可以帮到您~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容