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

时间:2017-03-07 16:43:40

标签: listview nativescript uiswitch

我有一个 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; 
}

错误:无法设置属性&#39;已检查&#39;

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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中显示的数据数组。