Sencha Touch 不会隐藏我的列表
Posted
技术标签:
【中文标题】Sencha Touch 不会隐藏我的列表【英文标题】:Sencha Touch won't hide my List 【发布时间】:2013-04-29 19:29:34 【问题描述】:我在同一个容器内有一个地图和一个列表,并设置了 2:5 的弹性比率。我希望能够在地图上切换双击以最大化它以填充容器或将其重置回原始大小,具体取决于列表是否隐藏。我编写了下面的函数并将其绑定到地图的 dblclick 事件。我看到它进入了这个函数,但它对我看到的没有影响。任何想法为什么我的列表不会动画和隐藏?
google.maps.event.addListener(that.getMap(), 'dblclick', function ()
var list = Ext.ComponentQuery.query('#BuildingList')[0];
var height = list.getHeight();
if (list.isHidden())
list.show(Ext.Anim(
easing: 'easeInOut',
duration: 1000,
autoClear: false,
from:
opacity: 0,
height: '0px'
,
to:
opacity: 1,
height: list.getHeight() + 'px'
));
else
list.hide(Ext.Anim(
easing: 'easeInOut',
duration: 1000,
autoClear: false,
from:
opacity: 1,
height: list.getHeight() + 'px'
,
to:
opacity: 0,
height: '0px'
))
);
【问题讨论】:
你试过没有动画的简单 list.hide() 和 list.show() 吗? 是的,那是我的第一次尝试。我也尝试了 setters()(例如 list.setHidden(true/false))。 他们工作与否?您确定变量“列表”是您的列表吗? Ext.ComponentQuery.query('#BuildingList')[0].hide() 直接在控制台执行时有什么作用? 【参考方案1】:我发现做这种事情的最好方法是在 dblclick 事件(我必须将其作为覆盖添加到地图)上将列表的 flex 设置为 0,如下所示:
that.addAfterListener('dblclick', function (view, map, zoomlevel, eOpts)
var list = view.getParent().down('buildings');
Ext.Anim.run(list, 'fade',
easing: 'easeInOut',
autoClear: false,
duration: 300,
after: function ()
list.setFlex(0);
);
);
【讨论】:
以上是关于Sencha Touch 不会隐藏我的列表的主要内容,如果未能解决你的问题,请参考以下文章