ObjectPageLayout头部内容中sap.m.Select忽略sapUiSizeCozy样式问题咨询
原因说明
这个是UI5 1.71版本的已知问题,ObjectPageLayout的headerContent区域默认会强制继承sapUiSizeCompact样式,且该版本中sap.m.Select的样式优先级设计存在缺陷:你给单个Select加的sapUiSizeCozy类优先级低于header区域的默认compact样式,所以才会出现强制设置不生效的情况,同区域的MultiComboBox、按钮因为样式优先级规则不同,所以能正常适配cozy模式。
可行解决方案
- 方案1:给headerContent里的外层容器加cozy类+自定义样式覆盖
给你放在headerContent里的最外层VBox添加class="sapUiSizeCozy"属性,然后在应用的自定义CSS文件中添加以下样式,覆盖header默认的密度规则:.sapUxAPObjectPageHeaderContent .sapUiSizeCozy .sapMSelect { height: 2.5rem; padding: 0 0.75rem; font-size: 1rem; } - 方案2:直接给Select指定contentDensity属性
不需要加CSS类,直接在Select的XML属性里添加contentDensity="Cozy",该属性优先级高于全局CSS类设置,1.60及以上版本都支持:<m:Select id="idStoreSelect" contentDensity="Cozy" selectedKey="{homeModel>/storeSelectKey}" change="onStoreSelectChange" items="" > - 方案3:升级UI5版本
该问题在UI5 1.84及以上长期支持版本已经被官方修复,ObjectPageLayoutheader区域的样式继承逻辑已经调整,不会强制覆盖组件的密度设置,升级版本后不需要额外修改就能正常适配。
内容的提问来源于stack exchange,提问作者Erch
相关产品推荐
相关产品推荐

