Kuix组件Choice发现一个新的bug

本来想偷懒,利用choice的选择功能,实现按按钮后打开隐藏的choice的列表,实现选择功能,发现choice在visible=“false”的情况下,打开的鹅列表是无法显示选中项的,而且以后没选择一项,下次打开列表选中的项就会消失,重复操作列表最终会被清空。证实在原版的Kuix类库中出现上述问题,非本人修改出来的bug。

 

<choice id="cmbFilter" visible="false">
		<choiceRadiogroup id="lstFilter" value="PublicDocFlow" οnchange="test2(#lstFilter.value)">
			<radiobutton value="1">a</radiobutton>
<radiobutton value="2">b</radiobutton>
<radiobutton value="3">c</radiobutton>
	</choice>
<screenFirstMenu onAction="test">pop up</screenFirstMenu>

测试代码

	public boolean onMessage(Object identifier, Object[] arguments) {
		if("test".equals(identifier)){
	    		Choice obj = (Choice)screen.getWidget("cmbFilter");
	    		obj.processActionEvent();
		}
		return false;
	}

如果visible="true"则完全没有上述问题。

//***************************************************

    问题解决,choice有一个choiceContainer的子panel,作用不是很明确,似乎是用来存放选中的radiobutton的,当choice不可见时,不会触发其dolayout方法,而dolayout中会把choiceContainer中的选中项“放回”选择窗口中,所以导致弹出窗口看不到选中项,多次选中后全部radiobutton都放入了choiceContainer,却没有办法从choiceContainer拿回。这算是choice的一个bug。

    实际上对于choiceContainer的作用我还弄不清楚,虽然提供了getChoiceContainer(),但是其它单元中并没有见到调用这个方法的,它似乎是用来临时存放选中项的,但是又看不出它有什么确切的作用,或许去掉它是更好的选择。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值