Viewがいくつも表示される
var win = Titanium.UI.currentWindow; var header = Titanium.UI.createView(); var body = Titanium.UI.createView(); var body1 = Titanium.UI.createView(); var body2 = Titanium.UI.createView(); var footer = Titanium.UI.createView(); body.add(body1); body.add(body2); win.add(header); win.add(body); win.add(footer);
というようにして、menuボタンを押下して新しくWindowを作るような場合、
button.addEventListener('click',function(e){ win.close(); });
とするだけでは意図した通りにならない。2度3度とWindowを表示させると、次のようなレイアウトになる。
+-----------------+ | header | +-----------------+ | body | +-----------------+ | footer | +-----------------| | header | ...
Windowをcloseしただけで、winに追加したViewを削除していないことが原因。なので、面倒だがwinからViewを削除する。
win.remove(header); ...
↓のようにするとうまく行かなかった。なんとか↓みたいな形で動かしたい。
var hiearchy = new Array('header','body','footer'); for(var i = 0;i < hiearchy.length;i++){ win.remove(hiearchy[i]); }