Flex如何解决flex滚动条后重新渲染

我在tilelist里面渲染了checkbox,然而checkbox多了,出现滚动条后,我选中第一个checkbox后,下拉滚动条就出现了乱选中现象。不知道怎么解决希望高... 我在tilelist里面渲染了checkbox,然而 checkbox多了,出现滚动条后,我选中第一个checkbox后,下拉滚动条 就出现了乱选中现象。不知道怎么解决 希望高手帮帮我感谢啊 展开
 我来答
CSU_DDR
2010-07-27 · 超过18用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:54万
展开全部
重写checkbox。。原因是flex不记录不显示的数据,这样减少性能消耗
下面是重写的checkbox,记得改包名

package cn.com.ooneg.keyword
{
import flash.events.Event;
import mx.controls.CheckBox;
public class CheckboxItemRanderer extends CheckBox{
public function CheckboxItemRanderer() {
super();
this.addEventListener('change', changeHandler);
}
private var _data:Object;
override public function get data():Object {
return _data;
}
override public function set data(value:Object):void {
_data = value;
if(_data && _data['selected']){
this.selected = true;
}else{
this.selected = false;
}
}
private function changeHandler(event:Event):void{
_data['selected'] = this.selected;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjpeng868
2010-07-28 · 超过39用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:85.5万
展开全部
用list的itemrenderder把checkbox加入titelist中,在itemrenderer的Class中加入一个Boolean变量,使用该变量的setter方法判断是否使checkBox显示为被check的状态。在list数据变化(或初始化)的时候,只需要设置这个变量的值就可以把checkbox设置成check或非check状态了。在滚动条滚动的时候,由于该变量的值是不变的,因此,你的checkbox也不会变(本人曾用此法成功处理过list被选择行变色的滚动问题,感觉和你的问题类似)。
由于list相关类型(List或DataGrid等)的滚动条的滚动会导致itemrenderer重画,因此乱选的原因是在于list本身,而不在checkbox,本人认为lz的方法未必能解决问题。由于list是根据data来滚动重画renderder的,所以只有通过数据的方式来解决这个问题。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a251934352
2010-08-10 · 超过13用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:36.7万
展开全部
这个是渲染器的bug 自己搜去吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式