我已将一个公共Surface和一个Scrollview(实际上是一个FlexScrollView)添加到SequentialLayout,然后将布局添加到我的View中,如下面的代码所示:
function _createCameraView() {
var layoutViews = [];
this.cameraView = new View({
size: [undefined, this.options.footerSize]
});
var layout = new SequentialLayout({
size: [undefined, this.options.footerSize],
direction: Utility.Direction.Y
});
var backgroundSurface = new Surface({
size: [undefined, 120],
content: 'some content',
classes : ['photo-guide-content'],
properties: {
backgroundColor: 'transparent',
zIndex: 4
}
});
// detail list
var detailsList = new FlexScrollView({
layout: ListLayout,
direction: Utility.Direction.X, // set direction to horizontal
paginated: true,
//autoPipeEvents: true,
useContainer: true,
container : {
size: [undefined, 60],
properties : {
'z-index' : 5,
}
}
});
layoutViews.push(backgroundSurface);
layoutViews.push(detailsList);
layout.sequenceFrom(layoutViews);
this.cameraView.add(alignModifier).add(layout);
}
然后我在另一个视图上添加了一个RenderController,我用它来显示我的cameraView:
function _selectCamera() {
if (!this.cameraView) {
_createCameraView.call(this);
}
this.footerRender.hide(this.mapView);
this.footerRender.show(this.cameraView);
}
我知道我不需要从上面函数的渲染中调用hide方法,只需要show方法,它应该用平滑的不透明度转换交换视图,默认情况下定义它。虽然使用此顺序布局时我没有得到这种效果。我知道它与这个布局有关,因为我已经尝试将布局切换到FlexibleLayout和GridLayout,并且它可以正常使用这两个。所以,我的问题是,为什么不使用SequentialLayout?我还注意到它有一个名为setOutputFunction(outputFunction)的方法,有没有办法使用它,所以布局使用从RenderController返回的不透明度或者如何以其他方式修复?
答案 0 :(得分:0)
尝试在视图中添加getSize方法。
这样的事情:
this.cameraView.getSize = function() {
return [undefined, undefined];
};