Hi all !
I'm trying to use the swipe list in a virtual list, in vain...
Indeed, at the first look, my implementation seems working (before scrolling) ! The swipes are operationnals on the first entries <li>...<li>.
But if i scroll in list, a misalignment appears on the display of the "ui-swipelist-left" and "ui-swipelist-right".
Can you help me please ?
Device target: Samsung GerFit 2 Pro
Tizen : Web Wearable 3.0
Lib TAU : v0.13.29
Screen resolution : 216x432
HTML
<div class="ui-page" id="lights">
<header class="ui-header">
<h2 class="ui-title center">Luminaires</h2>
</header>
<div class="ui-content">
<ul id="lights_vlist" class="ui-listview ui-swipelist-list"></ul>
<div class="ui-swipelist">
<div class="ui-swipelist-left">
<div class="ui-swipelist-text">On</div>
</div>
<div class="ui-swipelist-right">
<div class="ui-swipelist-text">Off</div>
</div>
</div>
<div class="ui-grid-col-2">
<a href="#main" class="ui-btn color_green gauche"></a>
</div>
</div>
</div>
JS
/***********************
** LIGHTS PAGE **
***********************/
/* Get HTML element reference */
var elList_lights = document.getElementById("lights_vlist");
/* Initialize vlist */
var vlist_lights = tau.widget.VirtualListview(elList_lights,
{
dataLength: LIGHTS_JSON_DATA.length,
bufferSize: 20
});
/* Update vlist items */
vlist_lights.setListItemUpdater(function(elListItem, newIndex)
{
var data = LIGHTS_JSON_DATA[newIndex];
vlistHTMLRendering(elListItem, data);
});
/** PAGE HANDLING EVENTS **/
(function(){
var page = document.getElementById( "lights" ),
listElement,
swipeList;
page.addEventListener( "pagebeforeshow", function() {
vlist_lights.draw();
});
page.addEventListener( "pageshow", function() {
listElement = page.getElementsByClassName( "ui-listview ui-swipelist-list ui-virtual-list-container" )[0];
swipeList = tau.widget.SwipeList( listElement, {
swipeTarget: "li",
swipeElement: ".ui-swipelist"
});
var children = listElement.childNodes;
for (var i = 0; i < children.length; i++) {
if(children[i].type==="SWIPE"){
children[i].addEventListener("swipelist.left", function(evt){
requestcommand(this.on);
});
children[i].addEventListener("swipelist.right", function(evt){
requestcommand(this.off);
});
}
}
});
page.addEventListener("pagehide", function(){
swipeList.destroy();
vlist_lights.destroy();
});
}());
LIGHTS_JSON_DATA
var LIGHTS_JSON_DATA =
[
{TYPE:"SWIPE", LABEL:"Canapé", ID_SWIP:"salon-canape-swipe", ID_CMD_ON:commandesConfig.luminaires.salon.canape_on, ID_CMD_OFF:commandesConfig.luminaires.salon.canape_off},
{TYPE:"SWIPE", LABEL:"Bureau", ID_SWIP:"salon-bureau-swipe", ID_CMD_ON:commandesConfig.luminaires.salon.bureau_on, ID_CMD_OFF:commandesConfig.luminaires.salon.bureau_off},
{TYPE:"SWIPE", LABEL:"Buffet", ID_SWIP:"salon-buffet-swipe", ID_CMD_ON:commandesConfig.luminaires.salon.buffet_on, ID_CMD_OFF:commandesConfig.luminaires.salon.buffet_off},
{TYPE:"SWIPE", LABEL:"TV", ID_SWIP:"salon-tv-swipe", ID_CMD_ON:commandesConfig.luminaires.salon.tv_on, ID_CMD_OFF:commandesConfig.luminaires.salon.tv_off},
{TYPE:"SWIPE", LABEL:"Buffet", ID_SWIP:"veranda-buffet-swipe", ID_CMD_ON:commandesConfig.luminaires.veranda.buffet_on, ID_CMD_OFF:commandesConfig.luminaires.veranda.buffet_off},
{TYPE:"SWIPE", LABEL:"Veilleuse", ID_SWIP:"chNino-veilleuse-swipe", ID_CMD_ON:commandesConfig.luminaires.chambreNino.veilleuse_on, ID_CMD_OFF:commandesConfig.luminaires.chambreNino.veilleuse_off}
];
vlistHTMLRendering
elListItem.innerHTML = data.LABEL; elListItem.id=data.ID_SWIP; elListItem.type="SWIPE"; elListItem.on=data.ID_CMD_ON; elListItem.off=data.ID_CMD_OFF;