用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的,所以只有通过数据的方式来解决这个问题。
<iframe align=middle marginwidth=0 marginheight=0 src= <a >
重写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;
}
}
}
Photoshop|
Dreamweaver|
SVG|
WebGL|
Visual Studio|
PowerDesigner|
Eclipse|
Git|
Apache Ant|
Atom|
Composer|
CodeSmith|
Flex|
Gradle|
Maven|
Sublime Text3|
SVN|
Tableau|
Vim|
Chrome开发者工具|
OpenGL|
Unity|
Direct3D|
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....