我正在使用带有图标的sap.m.Button
来显示用户密码复杂性的状态。按钮文本显示规则,图标根据完成的规则在accept
和reject
之间变化。
所以我希望按钮看起来不像按钮。因此,我将其类型设置为"Transparent"
,以删除边框。现在,仅需要删除“悬停”效果,但是如何删除?我尝试过:
.statusButton .sapMBtnDefault {
background-color: transparent !important;
}
,但无效。有想法吗?
答案 0 :(得分:3)
不是按钮,而是使用#include <iostream>
class A
{
int a{};
public:
int aa{};
static ptrdiff_t getAOffset()
{
A instance;
return reinterpret_cast<ptrdiff_t>(static_cast<const void*>(&instance)) - reinterpret_cast<ptrdiff_t>(static_cast<const void*>(&(instance.a)));
//return offsetof(A, a); // "same" as this call to offset
}
int get() const
{
return a;
}
};
class B: public virtual A
{
};
void update_field(char* pointer, ptrdiff_t offset, int value)
{
int* field = reinterpret_cast<int*>(pointer + offset);
*field = value;
}
void modify_a(B& instance)
{
update_field(reinterpret_cast<char*>(dynamic_cast<A*>(&instance)), A::getAOffset(), 1);
}
int main()
{
B instance;
std::cout << instance.get() << std::endl;
modify_a(instance);
std::cout << instance.get() << std::endl;
}
API ,默认情况下,按钮的行为没有悬停效果。
sap.ui.core.Icon
sap.ui.getCore().attachInit(() => sap.ui.require([
"sap/ui/core/mvc/XMLView",
"sap/m/MessageToast",
], XMLView => XMLView.create({
definition: `<mvc:View
xmlns:mvc="sap.ui.core.mvc"
xmlns:core="sap.ui.core"
xmlns="sap.m"
height="100%"
displayBlock="true"
>
<App>
<Page showHeader="false">
<HBox class="sapUiTinyMargin"
alignItems="Center"
renderType="Bare"
>
<Text id="myText" text="Some password rule" />
<core:Icon id="myIcon"
class="sapUiTinyMarginBegin"
src="sap-icon://accept"
noTabStop="true"
size="1.25rem"
color="Positive"
press="sap.m.MessageToast.show('You totally clicked a Button')"
tooltip="Passed"
/>
</HBox>
</Page>
</App>
</mvc:View>`,
}).then(view => view.placeAt("content"))));
这消除了创建和维护自定义CSS规则的需要,此外,就开箱即用的颜色和大小而言,Icon高度可自定义。