function getIndexFromLab(lab)
{
var arr = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
var j;
for (j=0; j<arr.length; j++)
{
if (arr[j] === lab)
break;
}
var i;
for (i=0;i<list_model.count;i++)
{
if (list_model.get(i).sectionChar.substr(0, 1) === lab)
{
return i;
}
}
if (i >= list_model.count)
{
return getIndexFromLab(arr[j-1]);
}
}
以上JS代碼,需要注意其遞歸調用處:return getIndexFromLab(arr[j-1]); 切記遞歸return,不熟悉遞歸的,這裏可能會犯錯。調用定位處的代碼如下:
var idx = getIndexFromLab(modelData);
list_view.positionViewAtIndex(idx, ListView.Beginning);
然後將Repeater的model補全如下:
model: ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
這樣,就能夠根據鼠標選中分組準確定位ListView了。