我正在控制器中创建ObjectStatus和Text元素,以便将它们添加到视图中的VBox元素中。我使用addItem方法执行此操作。每个新元素都会自动放置在VBox的最底部。如何实现将新元素添加到VBox顶部(在我之前添加的元素上方)呢?谢谢您的帮助!
答案 0 :(得分:1)
将direction
控件的VBox
属性(从FlexBox继承)设置为ColumnReverse
。
或者,正如Matthijs指出的那样,您可以使用insertItem()
代替addItem()
。这也可以使用iIndex
参数在聚合中进行精确放置。
答案 1 :(得分:1)
您应该使用:
this.byId("vbox").insertItem(oControl);
代替:
this.byId("vbox").addItem(oControl);
答案 2 :(得分:-1)
这是另一个建议:
//Add some items initially to the VBox
for (i = 0; i < 4; i++) {
this.getView().byId("idVBox").addItem(new sap.m.Text({
text: "SomeText2"
}));
}
//Get the items of the Vbox
var array = this.getView().byId("idVBox").getItems();
//remove all items
this.getView().byId("idVBox").removeAllItems();
//add your new item as the first item to the VBox
this.getView().byId("idVBox").addItem(new sap.m.Text({
id: "someOtherid",
text: "SomeText2New"
}));
//add all the others back
for (i = 0; i < array.length; i++)
this.getView().byId("idVBox").addItem(array[i]);