listview item设置点击跳转_[UE4蓝图]UMG中新手必晕的ListView详解

53a146b8eb76996594644294bda63146.png

作为一名三流程序,最近又开始写UI了。Slate又不会,只能用用UMG才维持得了生活这样子。

在做类似背包收集品的时候用到了ListView,没用过的话真的很容易懵逼,以为出现了各种bug。中文教程很少,还是各种google search加自己尝试之后才慢慢搞清楚。记录总结了测试研究的过程,与大家分享,希望能帮到跟我一样困惑的小白们。(使用版本:4.24.3)提要
ListView(列出视图)是什么?
一、准备工作
二、先晕为敬——将EntryWidget同时作为Item和Entry使用问题一:混淆了Item和Entry,其实Item里的数据并没有传入Entry。
三、灵异事件——单选模式却出现了多选?问题二:ListView替你控制的是Entry的SelectState(选择状态),而不是Item的。同一个Entry一般会用来表示多个Item。
关键事件调用顺序四、总结

ListView(列出视图)是什么?

列出视图:允许显示数千个项目的一个虚拟列表。

407ec56355aa6b7cf4ed6680a95d581b.png

这里的官方说明似乎有点绕,因为语言调成了中文,项目条目很容易混淆,我们用英文替换掉通俗一点解释

一、需要注意 Item Entry 的重要区别。
ListView自身包含n个 Item ,但不代表就会在屏幕上创建n个 Entry
比如,用ListView做的可以滚动查看的背包,一共有200件装备,但屏幕的大小有限,那么就可能只会创建5个 Entry
(这里每件装备的信息就是 Item ,用来显示这些信息的UI控件,就是 Entry 。)二、要把Widget变成可用的Entry,必须要继承自 IUserObjectListEntry 接口

请记住 Item 和 Entry , 这是ListView中的重要概念,提前知道了这两个东西,理解起来就会好很多。

一、准备工作

1.新建一个第一或第三人称项目。新建两个Widget分别命名为 ListViewWidget EntryWidget

64580e22b7ee6449350fe7b067a58b83.png

2.打开FirstPersonCharacter/ThirdPersonCharacter蓝图,加入打开关闭UI界面的逻辑。

42637e6510eea87a10e0c4de485bd102.png

FlipFlop节点:第一次执行A,第二次执行B,循环反复。实用性很高。

类似的还有DoOnce节点(只执行一次),蓝图的流程控制节点用起来十分方便,建议过一遍官方文档:UE4蓝图---流程控制节点

3.打开EntryWidget,将默认存在的Canvas Panel删掉,然后拉一个Border再拉一个Text并设置居中。Border和Text都设置为变量方便之后传入数据。因为默认都为白色,所以要将Text颜色改为黑色才能看得见。

51d15f7574cf207c170176034ac46bf0.png

4.在EntryWidget的Class Settings中,按照之前的文档说明,想作为Entry需要添加IUserObjectListEntry 接口,然后记得点编译。

fe117bf62b918a45b6246c227c839d83.png

5.打开ListViewWidget,添加一个ListView并将Entry选为 EntryWidget ,调整Entry Spacing(条目间距)和Num Designer Preview Entries(设计器内预览条目数量),然后记得要点编译才生效。</

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值