dropdownButton 列表按钮
dropdownButton 显示为一个按钮,当点击时会显示一个带列表的下拉菜单。
XML 元素 |
|
|---|---|
Java 类 |
|
XML 属性 |
id - alignSelf - classNames - colspan - css - dropdownIndicatorVisible - enabled - focusShortcut - height - icon - maxHeight - maxWidth - minHeight - minWidth - openOnHover - overlayClass - tabIndex - text - themeNames - title - visible - whiteSpace - width |
事件和处理器 |
|
XML 内部元素 |
基本用法
下拉菜单中包含一组可点击的菜单项,每项对于一个操作。
当用户点击操作时,会触发对应的事件方法。
下面的示例定义了一个带文字、图标以及从 消息包 获取提示(使用 title 属性)的 dropdownButton:
<dropdownButton icon="MAILBOX" text="Contact Us" title="msg://contact">
<items>
<textItem id="callItem" text="Call Us"/>
<textItem id="emailItem" text="E Mail"/>
<textItem id="whatsAppItem" text="WhatsApp"/>
</items>
</dropdownButton>
XML 内部元素
XML 中定义 dropdownButton 支持一些内部元素:
actionItem
actionItem 个元素可以将下拉菜单项与特定 操作 进行关联,点击菜单项时执行该操作。
使用 ref 属性指定 action 的 id。
<actions>
<action id="callAction" text="Call Us" icon="PHONE"/>
</actions>
<layout>
<dropdownButton icon="MAILBOX" title="msg://contact" id="callBtn">
<items>
<actionItem id="callUsItem" ref="callAction"/>
</items>
</dropdownButton>
</layout>
当用户点击下拉列表中的 actionItem 时,Jmix 会自动触发 ref 属性引用的 action。为操作生成 ActionPerformedEvent 处理方法。并添加逻辑:
@Subscribe("callAction")
public void onCallAction(final ActionPerformedEvent event) {
notifications.show("Phone number: +6(876)5463");
}
componentItem
componentItem 元素可以为 dropdownButton 设置自定义的内容。
<layout>
<dropdownButton icon="MAILBOX" title="msg://contact" id="callBtn">
<items>
<componentItem id="emailIt">
<hbox padding="false">
<icon icon="MAILBOX"/>
<span text="E Mail"/>
</hbox>
</componentItem>
</items>
</dropdownButton>
</layout>
使用 Jmix Studio 可以为 DropdownButtonItem.ClickEvent 事件生成处理器桩代码。
@Subscribe("callBtn.emailIt")
public void onEmailItClick(final DropdownButtonItem.ClickEvent event) {
notifications.show("Email: test@river.net");
}
textItem
textItem 元素设置一个文本。
<layout>
<dropdownButton icon="MAILBOX" title="msg://contact" id="callBtn">
<items>
<textItem id="whatsAppIt" text="WhatsApp"/>
</items>
</dropdownButton>
</layout>
使用 Jmix Studio 可以为 textItem 的 DropdownButtonItem.ClickEvent 事件生成处理器桩代码。
@Subscribe("callBtn.whatsAppIt")
public void onCallBtnWhatsAppItClick(final DropdownButtonItem.ClickEvent event) {
notifications.show("`WhatsApp: +6(876)5463");
}
样式版本
使用 themeNames 属性可以设置预定义的不同按钮样式。
-
重要:
<dropdownButton text="Primary" themeNames="primary"/> <dropdownButton text="Secondary"/> <dropdownButton text="Tertiary" themeNames="tertiary-inline"/> -
危险或错误:
<dropdownButton text="Primary" themeNames="primary, error"/> <dropdownButton text="Secondary" themeNames="error"/> <dropdownButton text="Tertiary" themeNames="tertiary-inline, error"/> -
成功:
<dropdownButton text="Primary" themeNames="primary, success"/> <dropdownButton text="Secondary" themeNames="success"/> <dropdownButton text="Tertiary" themeNames="tertiary-inline, success"/> -
高对比:
<dropdownButton text="Primary" themeNames="primary, contrast"/> <dropdownButton text="Secondary" themeNames="contrast"/> <dropdownButton text="Tertiary" themeNames="tertiary-inline, contrast"/> -
不同尺寸:
<dropdownButton text="Large" themeNames="large"/> <dropdownButton text="Normal"/> <dropdownButton text="Small" themeNames="small"/>
样式版本的主题名在 DropdownButtonVariant 类中定义。参阅 Vaadin 文档 了解更多关于按钮样式的设定。
XML 属性
在 Jmix 中,所有组件都有一些作用一致的 通用属性。
下面是 dropdownButton 的特殊属性:
名称 |
描述 |
默认值 |
|---|---|---|
设置下拉提示符的可见性。 |
|
|
如果 |
|