Titanium 钛合金自动排样

Titanium 钛合金自动排样,titanium,titanium-mobile,Titanium,Titanium Mobile,我正在尝试定位我的视图,并让它们自动调整大小 在这个例子中,我有三个视图,一个是红色的,一个是蓝色的,一个是绿色的,它们都在一个垂直布局的窗口中,它们的宽度都是“100%”: 看起来不错。现在我想在红色视图中添加控件,并希望发生以下几件事: 我将在红色视图中放置一个控件,每个方向的边距为10点/像素 调整内部控件的大小时,红色视图将自动调整自身大小以适应内部控件,但将保持每个方向的10点边距 蓝色和绿色视图将自动缩小其大小以占据屏幕的其余部分 例如: var blackView = Ti.UI.

我正在尝试定位我的视图,并让它们自动调整大小

在这个例子中,我有三个视图,一个是红色的,一个是蓝色的,一个是绿色的,它们都在一个垂直布局的窗口中,它们的宽度都是“100%”:

看起来不错。现在我想在红色视图中添加控件,并希望发生以下几件事:

  • 我将在红色视图中放置一个控件,每个方向的边距为10点/像素
  • 调整内部控件的大小时,红色视图将自动调整自身大小以适应内部控件,但将保持每个方向的10点边距
  • 蓝色和绿色视图将自动缩小其大小以占据屏幕的其余部分
  • 例如:

    var blackView = Ti.UI.createView({
        backgroundColor : "black",
        top : 10,
        bottom : 10,
        left : 10,
        right : 10
    });
    
    ...
    ...
    
    blackView.height = blackView.height + 50;
    
    当我将blackView的高度增加50时,应发生以下情况:

    1) 红色视图的高度应增加50。 2) blueView和greenView的高度应降低25,并应自动放置


    你知道如何实现这种自动行为吗?

    有几种方法

    简单方法: 增大内部视图的大小时,必须增大外部视图的大小,所有其他相对视图都应相应减小

    推荐: 对其使用事件侦听器。 例如 1.更改大小时触发自定义事件,例如

    Ti.App.fireEvent("myViewSizeChanged",{newSize:"50",control:redview});
    
  • 侦听此事件调用调整每个视图大小的计算方法。 e、 g

    Ti.App.addEventListener(“myViewSizeChanged”,函数(e){ //这里可以得到e的值 //e、 新闻化 //e、 红视图 });


  • 两个参数都将告诉您哪个控件的新大小。。。您可以相应地调整其余视图的大小

    1。blackView在redView里面吗?2.当您将blackView的大小增加50时,redView的大小是否也应增加50?
    Ti.App.fireEvent("myViewSizeChanged",{newSize:"50",control:redview});