sapui5 - sap.m.GenericTile 的容器
问题描述
对于 sap.m.StandardTile,我们有出色的 sap.m.TileContainer,但我无法为 sap.m.GenericTile 找到类似的东西。
基本上我正在寻找一个包含多个通用瓷砖的控件,并将根据设备自动调整大小和居中。
现在,这就是我正在做的事情:
<GenericTile header="{/0/header}" subheader="{/0/subheader}" press="onTilePress">
<TileContent>
<ImageContent src="{/0/src}"/>
</TileContent>
</GenericTile>
<GenericTile header="{/1/header}" subheader="{/1/subheader}" press="onTilePress">
<TileContent>
<ImageContent src="{/1/src}"/>
</TileContent>
</GenericTile>
除了必须手动调用我的 JSON 文件中的每个条目之外,没有自动的方法吗?
请帮忙。
解决方案
您可以使用 aFlexbox
来聚合和绑定项目,而不是单独/手动绑定它们并grid layout
控制设备的视图。GridLayout中的defaultSpan
控件属性根据设备屏幕尺寸(即 XL、L、M 和 S 屏幕显示)确定图块的外观。
//Example data.json
{
"ProductCollection": [{
"productHeader": "Tile Header - 1",
"productSubHeader": "Tile SubHeader - 1",
"ProductPicUrl": "sap-icon://competitor"
}, {
"productHeader": "Tile Header - 2",
"productSubHeader": "Tile SubHeader - 2",
"ProductPicUrl": "sap-icon://badge"
}, {
"productHeader": "Tile Header - 3",
"productSubHeader": "Tile SubHeader - 3",
"ProductPicUrl": "sap-icon://broken-link"
}, {
"productHeader": "Tile Header - 4",
"productSubHeader": "Tile SubHeader - 4",
"ProductPicUrl": "sap-icon://create"
}, {
"productHeader": "Tile Header - 5",
"productSubHeader": "Tile SubHeader - 5",
"ProductPicUrl": "sap-icon://pending"
}, {
"productHeader": "Tile Header - 6",
"productSubHeader": "Tile SubHeader - 6",
"ProductPicUrl": "sap-icon://decision"
}, {
"productHeader": "Tile Header - 7",
"productSubHeader": "Tile SubHeader - 7",
"ProductPicUrl": "sap-icon://process"
}, {
"productHeader": "Tile Header - 8",
"productSubHeader": "Tile SubHeader - 8",
"ProductPicUrl": "sap-icon://accept"
}, {
"productHeader": "Tile Header - 9",
"productSubHeader": "Tile SubHeader - 9",
"ProductPicUrl": "sap-icon://alert"
}]
}
<!--In **Main.view.xml** -->
<Page id="page" title="Page Title" showHeader="true" enableScrolling="true">
<content>
<Panel height="100%" width="100%" backgroundDesign="Transparent">
<layout:Grid containerQuery="true" defaultSpan="XL12 L12 M12 S12" width="100%">
<layout:VerticalLayout width="100%" class="gridWrapper">
<FlexBox alignItems="Center" alignContent="Center" direction="Row" renderType="Bare" wrap="Wrap" width="100%" displayInline="true" fitContainer="true" items="{/ProductCollection}">
<items>
<GenericTile header="Headers" subheader="Subheader" press="onTilePress">
<TileContent>
<ImageContent src="{ProductPicUrl}" />
</TileContent>
</GenericTile>
</items>
</FlexBox>
</layout:VerticalLayout>
</layout:Grid>
</Panel>
</content>
</Page>
推荐阅读
- python - s.replace 字符串方法,循环遍历一个字符串
- python - 如何从外部重新定义函数中的可变变量?
- android - 由于蓝牙连接的 Android 应用程序在 Arduino 上控制 LED 的问题
- javascript - typeahead.bundle.js:374 Uncaught TypeError: this._send 不是函数(在 ReactJs 中)
- xquery - xquery "" 和 () 的区别
- visual-studio-code - VS Code 键盘快捷键是否有底层逻辑/模式?
- ruby - 法拉第 - 测试连接
- performance - FastReports pascalscript if
- mysql - 如何将列中的结果放在结果的顶部?
- java - 发生了什么以及如何修复:无效的模块名称:“tomcat-embed-jasper-el”不是 Java 标识符