titanium - clear views in ScrollableView -
i have titanium project alloy. in screen have scrollableview. when open screen need remove views of screen, can't.
principal.xml
<scrollableview id="emisorview" onscrollend="cambioemisor" top="10%" height="10%" width="100%" backgroundcolor="#fff"> </scrollableview>
principal.js
function construyoemisores(){ var db = ti.database.open('termolink'); var rows = db.execute('select * regulaciones order regulaciones.nombre,regulaciones.serie'); nregistros=comprueboregbd(); (i=0;i<$.emisorview.views.length;i++){ $.emisorview.removeview($.emisorview.views[i]); } var i; var serieenqueestoy=0; (i=0;i<nregistros;i++){ tablanombretermostatos[i]= rows.field(2); if (rows.field(0)==serie) serieenqueestoy=i; //esto es para posicionar en el seleccionado var nuevaview=ti.ui.createview(); var titulo1=ti.ui.createlabel({ id: "nombreterm", text: tablanombretermostatos[i], color: "#b0acb1" , textalign: ti.ui.text_alignment_left, left:"44%", top:"33%" }); var imagen1=ti.ui.createimageview({ id: "radiador", image: "/figura radiador.png", height: "60%", left:"32%", top:"20%" }); if (ti.platform.name=="iphone os") { imagen1.left = "13%"; } nuevaview.add(imagen1); nuevaview.add(titulo1); $.emisorview.addview(nuevaview); rows.next(); } db.close(); $.emisorview.scrolltoview(serieenqueestoy); }
when run first time ok, in times scrollableview have more , more views.
any suggestions clear scrollableview??
i work titanium 5.3.1, alloy, android , ios.
new version. don't run
$.emisorview.cleanup = function() { $.destroy(); $.off(); //null objects here }; function construyoemisores(){ var db = ti.database.open('termolink'); var rows = db.execute('select * regulaciones order regulaciones.nombre,regulaciones.serie'); nregistros=comprueboregbd(); var cuantosviews=$.emisorview.views.length; (i=0;i<cuantosviews;i++){ $.emisorview.views[parseint(parseint(i))].cleanup && $.emisorview.views[parseint(parseint(i))].cleanup(); $.emisorview.removeview($.emisorview.views[i]); $.emisorview.views[i]=null; } var i; var serieenqueestoy=0; (i=0;i<nregistros;i++){ tablaserietermostatos[i]=rows.field(0); tablapintermostatos[i]=rows.field(1); tablanombretermostatos[i]= rows.field(2); tablatempertermostatos[i]= rows.field(345); tablaconsignatermostatos[i]= rows.field(5); tablaestadotermostatos[i]= rows.field(344); if (rows.field(0)==serie) serieenqueestoy=i; //esto es para posicionar en el seleccionado var nuevaview=ti.ui.createview(); var titulo1=ti.ui.createlabel({ id: "nombreterm", text: tablanombretermostatos[i], color: "#b0acb1" , textalign: ti.ui.text_alignment_left, left:"44%", top:"33%" }); var imagen1=ti.ui.createimageview({ id: "radiador", image: "/figura radiador.png", height: "60%", left:"32%", top:"20%" }); if (ti.platform.name=="iphone os") { imagen1.left = "13%"; } nuevaview.add(imagen1); nuevaview.add(titulo1); $.emisorview.addview(nuevaview); //$.emisorview.insertviewsat(i,nuevaview); rows.next(); } db.close(); $.emisorview.scrolltoview(serieenqueestoy); }
definitive version, run
var cuantosviews=$.emisorview.views.length; (i= cuantosviews;i>0;i--){ $.emisorview.removeview($.emisorview.views[i-1]); $.emisorview.views[i-1]=null; }
thanks people. problem loop must end start. remove views fine.
if trying remove scrollableviews, don't use remove() or removeallchildren() methods, removeview() method.
this how can remove scrollableview views, , cleanup them:
if($.scrollableview.views && parseint($.scrollableview.views.length)) for(var = parseint($.scrollableview.views.length); > 0; i--) if($.scrollableview.views[parseint(parseint(i)-1)]) { $.scrollableview.views[parseint(parseint(i)-1)].cleanup && $.scrollableview.views[parseint(parseint(i)-1)].cleanup(); $.scrollableview.removeview($.scrollableview.views[parseint(parseint(i)-1)]); $.scrollableview.views[parseint(parseint(i)-1)] = null; }
this example of view: view.xml
<view id="view"> <label id="title"/> </view>
view.js
$.title.text = 'test'; $.view.cleanup = function() { $.destroy(); $.off(); //null objects here };
Comments
Post a Comment