用户登录
用户注册

分享至

flex滚动条

  • 作者: 流浪着幸福ka
  • 来源: 51数据库
  • 2020-09-29
用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;
}
}
}
软件
前端设计
程序设计
Java相关