我有一个适用于 Android 和 IOS 的钛金属应用程序。该应用程序很复杂,因为它加载了不同的模块。我的意思是,我有一个视图,在视图的顶部我加载了一个带有其他组件的模块,在中间加载了另一个带有 webview 的模块,在底部加载了另一个带有按钮的模块。
如果我在我的应用程序中加载此视图,它可以正常工作。但我想创建一个可滚动的视图并添加具有不同参数的相同视图。像这样:
var scrollableView = Ti.UI.createScrollableView({
views : [new MyView("View 1", "red"), new MyView("View 2", "green"), new MyView("View 3", "blue")],
showPagingControl : true
});
当我尝试这个(只添加一次视图)时,我有一个 java.lang.StackOverflowError。
这是日志
你知道可能是什么原因吗?该视图运行良好,但是当我将其添加到可滚动视图中时,应用程序意外停止。
你知道我怎么知道问题出在哪里吗?
提前致谢
更新
我附上这个问题,但我不明白。
我发现问题出在我添加一些组件视图和模块时。我简化了添加这些组件的方式,并且我发现了它何时起作用以及何时不起作用。
此代码有效:
var topCircleViewPortrait = Ti.UI.createView({
height : utils.getTopCircleHeight(),
width : view.width,
top : 0,
backgroundColor : "transparent"
});
var scrollView = Ti.UI.createScrollView({
contentWidth : 'auto',
showHorizontalScrollIndicator : true,
height : '100%',
width : '100%',
scrollType : 'horizontal',
left : 0,
right : 0
});
topCircleViewPortrait.add(scrollView);
var circulo = Circular_graph.Constructor(circularGraphs, 'IB', '#cf1022', '#960913', '#960913');
circulo.update('80', '80', '50', 1);
scrollView.add(circulo);
view.add(topCircleViewPortrait);
但是,我想在我的滚动视图中添加更多“Circular_graph”,所以我尝试创建一个水平布局的视图,将不同的“Circular_graphs”添加到该视图中,然后将该视图添加到我的滚动视图中。它不起作用。
这是不起作用的代码:
var topCircleViewPortrait = Ti.UI.createView({
height : utils.getTopCircleHeight(),
width : view.width,
top : 0,
backgroundColor : "transparent"
});
var scrollView = Ti.UI.createScrollView({
contentWidth : 'auto',
showHorizontalScrollIndicator : true,
height : '100%',
width : '100%',
scrollType : 'horizontal',
left : 0,
right : 0
});
topCircleViewPortrait.add(scrollView);
var circularGraphs = Ti.UI.createView({
height : parent.height,
width : Titanium.UI.SIZE,
backgroundColor : "transparent"
});
var circulo = Circular_graph.Constructor(circularGraphs, 'IB', '#cf1022', '#960913', '#960913');
circulo.update('80', '80', '50', 1);
circularGraphs.add(circulo);
scrollView.add(circularGraphs);
view.add(topCircleViewPortrait);