当试图制作可折叠的容器时,拾取器(任何视图)都会被切断

时间:2012-05-24 15:44:06

标签: appcelerator

在appcelerator中,似乎没有一个控制来制作一个可折叠的“div”,所以我想我会自己旋转一个。

1。)创建一个父View(高度50),添加一个标签(显示,意味着被点击)和一个选择器(隐藏) - 然后放置标签&父视图中的选择器。

2。)点击标签,将父视图设置为高度:150。

3.。)显示选择器。

但是,拾取器在高度处被截止:50(视图的原始大小)。如果我将父视图调整为70的原始高度,那么选择器将被截止为70.我正在渲染视图的方式是否存在问题 - 是否有更好的方法?

options_label.addEventListener('click', function(){
        var animation = Titanium.UI.createAnimation();
        animation.height = 150
        var animationHandler = function() {
           animation.removeEventListener('complete',animationHandler);
           picker.show()
        };
        animation.addEventListener('complete',animationHandler);
        category_option.animate(animation)

    })

enter image description here

1 个答案:

答案 0 :(得分:0)

我在appcelerator中遇到过很多次这样的问题。修复通常涉及切换事件的顺序。不幸的是,这或多或少是一个试错过程,所以这是我最好的猜测:

  1. 不是在初始化时创建选择器,而是在动画完成时显示选择器,而是仅创建选择器并将其添加到category_option函数中的animationHandler视图。
  2. 如果上述内容对您没有吸引力,请尝试通过设置其height属性将强制选择器的高度强制为正确的任何内容。这应该强制它安排重新布局,希望让它意识到它的父视图现在更大了。
  3. 我最好猜测为什么会发生这种情况是选择器的show()方法不会导致组件的重新布局。这将使它认为它仍然处于50单位的高度视图中,并相应地裁剪自己。然而,我可能完全错了,只是猜测它。