SAPUI5在VBox顶部添加元素

时间:2018-11-15 22:35:31

标签: sapui5

我正在控制器中创建ObjectStatus和Text元素,以便将它们添加到视图中的VBox元素中。我使用addItem方法执行此操作。每个新元素都会自动放置在VBox的最底部。如何实现将新元素添加到VBox顶部(在我之前添加的元素上方)呢?谢谢您的帮助!

3 个答案:

答案 0 :(得分:1)

direction控件的VBox属性(从FlexBox继承)设置为ColumnReverse

或者,正如Matthijs指出的那样,您可以使用insertItem()代替addItem()。这也可以使用iIndex参数在聚合中进行精确放置。

答案 1 :(得分:1)

您应该使用:

this.byId("vbox").insertItem(oControl);

代替:

this.byId("vbox").addItem(oControl);

答案 2 :(得分:-1)

这是另一个建议:

  1. 您可以在数组中获取VBox的所有项目。
  2. 从VBox中删除项目
  3. 将新项目放置在VBox中的第一个位置。
  4. 从数组中添加存储的VBox项。

//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]);