使视图水平滚动而不是垂直滚动

时间:2013-09-17 13:01:17

标签: javascript android ios scroll titanium

我正在努力使滚动视图向侧面滚动,而不是在钛合金上下滚动。我需要适用于iOS和Android的解决方案。

var challengesScrollView= Ti.UI.createScrollView({
    top: '60%',
    height: c1Container.height,
    width: '60%',
    backgroundColor: 'yellow',
    zIndex: 9000,
    /* left & right work too */
    contentHeight:'auto',
});

challengesScrollView.add(c1Container);
challengesScrollView.add(c2Container);
challengesScrollView.add(c3Container);
mainContainer.add(challengesScrollView);

更新:

我的mainContainer如下:

var mainContainer= Ti.UI.createView({
    left: '5%',
    right:'5%',
    top: '9%',
    bottom:'15%',
});

和c1Container是:

var c1Container= Ti.UI.createView({
    top:'1%',
    width:'70dp',
    height: '90dp',
    zIndex:20, 
    left:'10dp',
    backgroundColor:'#3b214a',
    borderRadius: 5
});

它包含以下内容:

var c1PicView= Ti.UI.createView({
    width: '55dp',
    height: '55dp',
    top: '5%',
    borderRadius: 5,
    //backgroundColor:'pink',
    zIndex:5
});

var c1Pic= Ti.UI.createImageView({
    image:'girl.jpg',
    width: c1PicView.width,
    height: c1PicView.height,
    zIndex:5
});

var cName= 'Mary';
var c1Name=Ti.UI.createLabel({
    color: 'white',
    text: cName,
    font:{fontSize: '14sp'},
    top: '60dp' 
});

c1Container.add(c1PicView);
c1PicView.add(c1Pic);
c1Container.add(c1Name);
除了名称

之外,

c2与c1相同

我不确定如何定位c1Container,c2Container和c3Container等,以便他们只是在侧面添加视图。我不能给出实际的像素,左或右位置,因为滚动视图最多可以有20个迷你容器。所有帮助表示赞赏

4 个答案:

答案 0 :(得分:1)

事实上,您可以使用 ScrollView (它应该适用于iOS和Android)。

我刚试过这段代码,效果很好:

var win = Ti.UI.createWindow();

var challengesScrollView = Ti.UI.createScrollView({
    top:             '60%',
    height:          '30%',
    width:           '60%',
    backgroundColor: 'yellow',
    layout:          'horizontal'
});
win.add(challengesScrollView);

function addView() {
    challengesScrollView.add(Ti.UI.createView({
        left: '10dp',
        width: '100dp',
        height: '100dp',
        backgroundColor: '#FF0000'
    }));

    setTimeout(addView, 2000);
}

win.addEventListener('open', addView);

win.open();

此代码每2秒向 ScrollView 添加新视图,并且如您所愿,每次 ScrollView 的宽度都会更改

属性布局:'水平'用于将每个视图水平放置在 ScrollView 中。因此,您不必计算每个视图的绝对位置。

如果此属性无法解决您的问题,也许您应该共享更多代码(例如容器的构造)。否则,很难帮助你;)

答案 1 :(得分:1)

简单的一点是,您只需将布局属性设置为水平

答案 2 :(得分:0)

在android中使用水平滚动小部件

答案 3 :(得分:0)

对于iOS:

UIScrollView根据其contentSize属性向不同方向滚动。如果你使contentSize的{​​{1}}大于滚动视图的实际宽度,它应该水平滚动。

相关问题