1、首先需要设置Entry Widget Class(不设置UMG编译不过)
2、Entry Widget Class必须得继承一个接口IUserObjectListEntry
3、需要重写IUserObjectListEntry的 OnListItemObjectSet(这个Event只能蓝图重写,C++无法重写)
4、重写GetListItemObject返回OnListItemObjectSet里面保存的数据(没试过不写会怎样)
4、OnListItemObjectSet里面将传入的UObject保存下来,这个UObject是ListView的Add方法传入的UObject,如果不保存下来,那么你的ListView的Item就和你Add时传入的数据丢失引用了。
5、UListView::Add(UObject),这个Add方法不是要传入UUserWidget,而是传入一个自定义的UObject作为参数,实际上调用Add后它会根据你在UMG里面设置的Entry Widget Class自己创建UUserWidget,所以第4步一定要保存下来,这点坑死我了,最开始以为是要传入UUserWidget,导致我以为是UObject自动被回收了。
UE4 ListView
最新推荐文章于 2024-06-15 15:09:15 发布