1

在 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)

    })

在此处输入图像描述

4

1 回答 1

0

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

  1. 而不是在初始化时创建选择器,然后在动画完成时显示它,只需创建选择器并将其添加到函数中的category_option视图。animationHandler
  2. 如果上述内容不吸引您,请尝试通过设置其 height 属性将选择器的高度强制为看起来正确的任何值。这应该迫使它安排重新布局,希望让它意识到它的父视图现在更大了。

关于为什么会发生这种情况,我最好的猜测是show()选择器的方法不会导致组件的重新布局。这会让它认为它仍然处于 50 单位高度的视图中,并相应地裁剪自己。我可能完全错了,但这只是猜测。

于 2012-10-18T09:37:26.977 回答