图标标签栏文本颜色更改
Icon Tab bar text color change
如何在 ui5 应用程序中更改图标标签栏文本颜色?我正在尝试更改图标选项卡栏的文本颜色。我有两个图标,根据条件我想更改第二个图标选项卡栏文本颜色。
我尝试了以下两种方法,但都没有成功。下面是我的 css,controller 和 xml:
的代码
XML
<IconTabSeparator icon="sap-icon://open-command-field"/>
<IconTabFilter id="id" icon="sap-icon://account" design="Horizontal"
text="sales" key="1" enabled="false"/>
<IconTabFilter id="id2" icon="sap-icon://action" text="purchase" key="1"
enabled="false"/>
CSS代码:
.TextColor{
color: red !important;
}
控制器:
that.getView().byId("id").addStyleClass("TextColor");
//getting error like below
that.getView(...).byId(...).addStyleClass is not a function
that.getView().byId("id").getText().fontcolor("#ff3333").//no effect
IconTabFilter 使用 iconColor 属性来改变颜色。
它可以采用有限数量的颜色选项 - 请参阅此处:options
我更喜欢使用模型绑定设置颜色:
控制器(根据需要调整条件):
if (condition == bad) that.getView().getModel("viewModel").setProperty("/salesIconColour", "Critical");
查看:
<IconTabFilter
key="1"
icon="sap-icon://account"
iconColor="{viewModel>/salesIconColour}"
text="sales"/>
您还可以直接在视图中使用内联绑定表达式(如果您愿意)。
通过以上内容,您可以影响任何特定图标(销售或购买)的颜色。
实现这一目标的最佳方法可能是使用自定义数据聚合。
在您的 IconTabFilter 中:
<IconTabFilter id="id" icon="sap-icon://account" design="Horizontal"
text="sales" key="1" enabled="false">
<customData>
<core:CustomData key="myTextColor" value="red" writeToDom="true"/>
</customData>
</IconTabFilter>
在你的 css 中:
*[data-myTextColor='red'] .sapMITBText{
color: red !important;
}
为了避免不需要的样式,我通常也会在我的 <App/>
标签中添加一个 class,例如
<App id="app" busy="{appView>/busy}" busyIndicatorDelay="{appView>/delay}" class="myApp">
因此 css 选择器变为:
.myApp *[data-myTextColor='red'] .sapMITBText{
color: red !important;
}
也许你可以在 onAfterRendering 中做到这一点。我认为这不是最好的方法。
let iconTabFilter = document.getElementById(self.getView().byId("id").sId + "-text");
iconTabFilter.style.cssText = "color: red !important";
如何在 ui5 应用程序中更改图标标签栏文本颜色?我正在尝试更改图标选项卡栏的文本颜色。我有两个图标,根据条件我想更改第二个图标选项卡栏文本颜色。
我尝试了以下两种方法,但都没有成功。下面是我的 css,controller 和 xml:
的代码XML
<IconTabSeparator icon="sap-icon://open-command-field"/>
<IconTabFilter id="id" icon="sap-icon://account" design="Horizontal"
text="sales" key="1" enabled="false"/>
<IconTabFilter id="id2" icon="sap-icon://action" text="purchase" key="1"
enabled="false"/>
CSS代码:
.TextColor{
color: red !important;
}
控制器:
that.getView().byId("id").addStyleClass("TextColor");
//getting error like below
that.getView(...).byId(...).addStyleClass is not a function
that.getView().byId("id").getText().fontcolor("#ff3333").//no effect
IconTabFilter 使用 iconColor 属性来改变颜色。
它可以采用有限数量的颜色选项 - 请参阅此处:options
我更喜欢使用模型绑定设置颜色:
控制器(根据需要调整条件):
if (condition == bad) that.getView().getModel("viewModel").setProperty("/salesIconColour", "Critical");
查看:
<IconTabFilter
key="1"
icon="sap-icon://account"
iconColor="{viewModel>/salesIconColour}"
text="sales"/>
您还可以直接在视图中使用内联绑定表达式(如果您愿意)。 通过以上内容,您可以影响任何特定图标(销售或购买)的颜色。
实现这一目标的最佳方法可能是使用自定义数据聚合。 在您的 IconTabFilter 中:
<IconTabFilter id="id" icon="sap-icon://account" design="Horizontal"
text="sales" key="1" enabled="false">
<customData>
<core:CustomData key="myTextColor" value="red" writeToDom="true"/>
</customData>
</IconTabFilter>
在你的 css 中:
*[data-myTextColor='red'] .sapMITBText{
color: red !important;
}
为了避免不需要的样式,我通常也会在我的 <App/>
标签中添加一个 class,例如
<App id="app" busy="{appView>/busy}" busyIndicatorDelay="{appView>/delay}" class="myApp">
因此 css 选择器变为:
.myApp *[data-myTextColor='red'] .sapMITBText{
color: red !important;
}
也许你可以在 onAfterRendering 中做到这一点。我认为这不是最好的方法。
let iconTabFilter = document.getElementById(self.getView().byId("id").sId + "-text");
iconTabFilter.style.cssText = "color: red !important";