如何在sap.m.TileContent的内容内添加多个控件?

时间:2018-11-20 14:06:25

标签: sapui5

下面的代码对于sap.m.TileContent中的单个控件工作正常

var oTile = new sap.m.GenericTile({
                            header: oData.results[i].Name,
                            subheader: oData.results[i].ModuleName,
                            size: "Auto",
                            frameType: "OneByOne",
                            press: [that.handleTilePress, that],
                            tileContent: [new sap.m.TileContent({
                                size: "Auto",
                                footer: oData.results[i].Num.toLocaleString() + " views",
                                content: [new sap.m.NumericContent({
                                    size: "Auto",
                                    nullifyValue: false,
                                    icon: "sap-icon://"+oData.results[i].tileIcon
                                })]
                            })]
                        });

但是,当我尝试向sap.m.TileContent中添加一个控件时,让我们说sap.m.TileContent中的sap.m.Label如下,

var oTile = new sap.m.GenericTile({
                            header: oData.results[i].Name,
                            subheader: oData.results[i].ModuleName,
                            size: "Auto",
                            frameType: "OneByOne",
                            press: [that.handleTilePress, that],
                            tileContent: [new sap.m.TileContent({
                                size: "Auto",
                                footer: oData.results[i].Num.toLocaleString() + " views",
                                content: [new sap.m.NumericContent({
                                    size: "Auto",
                                    nullifyValue: false,
                                    icon: "sap-icon://"+oData.results[i].tileIcon
                                }),
                            new sap.m.Label({text:"dummyText"})]
                            })]
                        })

这给我一个错误,因为“ 试图将控件数组添加到单个聚合”(内容中的单个控件工作正常,即标签或数字内容)

我正在寻找除“内容”之外的任何其他替代方法,以添加多个控件或以任何方式在内容中添加多个控件而不开发自定义控件。该如何解决?

PS:我想将sap.m.RatingIndicator添加到图块,以便实现最喜欢的功能。

1 个答案:

答案 0 :(得分:2)

之所以会这样,是因为sap.m.TileContent aggregations中的内容的基数为0..1,其中0是最小基数,而1是最大基数。这意味着您只能在content属性中包含一个项目。

Fiori Design Guidelines for Rating Indicator之后,您仅应在表单,表格或对话框中使用此元素。话虽如此,如果将其插入到sap.m.TileContent中,它仍然可以正常工作:

<GenericTile header="Cumulative Totals" subheader="Expenses">
   <TileContent unit="Unit" footer="Footer Text">
      <content>
         <RatingIndicator id="RI_default" maxValue="5" value="4" tooltip="Rating Tooltip"/>
      </content><!-- sap.ui.core.Control -->
   </TileContent>
</GenericTile>

如果您想在图块中添加其他文本,建议您像上面的示例一样在sap.m.TileContent中使用页脚和/或单位属性。

编辑:

您可以通过在sap.m.TileContent内插入sap.m.VBox元素并在其中插入多个元素来解决sap.m.TileContent聚合的基数的问题,尽管我确实建议您不要这样做!

示例:

<GenericTile header="Cumulative Totals" subheader="Expenses">
   <TileContent unit="Unit" footer="Footer Text">
      <content>
         <VBox>
             <RatingIndicator id="RI_default" maxValue="5" value="4"/>
             <Label text="Dummy"/>
         </VBox>
      </content>
   </TileContent>
</GenericTile>

希望有帮助!