首页 文章

如何在列表视图(NativeScript)中设置ui /开关?

提问于
浏览
-1

我有一个 listview ,每个都有一个开关组件,并在页脚中有一个按钮,其功能是设置所有开关的真或假 . 下一个代码用于将开关设置为true:

var listView1 = view.getViewById(page, "listView");
var label = listView.getViewById('id_check');  
label.checked = true;

但我只能设置一个项目的状态,我需要更改所有项目的状态 . 怎么做?

enter image description here

谢谢

编辑:

我写下面的代码,但我有一个错误:

for (var i = 0, size = historiqueList.length; i < size ; i++) {
var listView = view.getViewById(page, "listView1");
var label = listView.getItem(i).id_check;
label.checked = true; 
}

错误:无法设置属性'已检查'

2 回答

  • 0

    对于您的描述,我认为您引用具有相同ID的所有交换机,因此当您尝试访问它们时,您只能访问引用的最后一个 . 尝试使用一个数组,您可以将它们全部存储起来并循环它以在需要时更改所有值 .

  • 0

    您必须拦截onItemLoading事件 .

    以下是带有TS的NS的伪代码 .

    public onItemLoading(args) {
    let item : ListItem = this._listItemArray.getItem( args.itemIndex );
    
    let switch = args.view.getViewById("switch");
    
    switch.enabled = true;  // this could be incorrect
    }
    

    这是RadListView - 但我确信ListView是类似的 .

    this._listItemArray是ListView中显示的数据数组 .

相关问题