分组操作
简介
你可以使用 ActionGroup 对象将多个操作归入一个下拉菜单。组内可以包含多个操作,或其他组:
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
ActionGroup::make([
Action::make('view'),
Action::make('edit'),
Action::make('delete'),
])

本页介绍如何自定义操作组触发按钮与下拉菜单的外观。
自定义组触发样式
打开下拉菜单的按钮可以像普通操作一样自定义。触发按钮可用的全部方法 都可用于自定义组触发按钮:
use Filament\Actions\ActionGroup;
use Filament\Support\Enums\Size;
ActionGroup::make([
// Array of actions
])
->label('More actions')
->icon('heroicon-m-ellipsis-vertical')
->size(Size::Small)
->color('primary')
->button()



为组触发按钮添加提示
你可以使用 tooltip() 方法为组触发按钮添加提示:
use Filament\Actions\ActionGroup;
ActionGroup::make([
// Array of actions
])
->tooltip('Actions')

使用分组按钮设计
操作组也可以不使用下拉菜单,而是渲染为一组按钮。该设计在有或无按钮标签时均可使用。要启用此功能,请使用 buttonGroup() 方法:
use Filament\Actions\Action;
use Filament\Actions\ActionGroup;
use Filament\Support\Icons\Heroicon;
ActionGroup::make([
Action::make('edit')
->color('gray')
->icon(Heroicon::PencilSquare)
->hiddenLabel(),
Action::make('delete')
->color('gray')
->icon(Heroicon::Trash)
->hiddenLabel(),
])
->buttonGroup()

设置下拉菜单位置
可以使用 dropdownPlacement() 方法相对于触发按钮定位下拉菜单:
use Filament\Actions\ActionGroup;
ActionGroup::make([
// Array of actions
])
->dropdownPlacement('top-start')TIP
dropdownPlacement() 方法也接受一个函数来动态计算值。你可以将各种实用工具作为参数注入该函数。


或者,你可以使用 dropdownAutoPlacement() 方法,根据可用空间自动决定下拉菜单位置:
use Filament\Actions\ActionGroup;
ActionGroup::make([
// Array of actions
])
->dropdownAutoPlacement()在操作之间添加分隔线
你可以通过嵌套 ActionGroup 对象,在操作组之间添加分隔线:
use Filament\Actions\ActionGroup;
ActionGroup::make([
ActionGroup::make([
// Array of actions
])->dropdown(false),
// Array of actions
])dropdown(false) 方法会将这些操作放入父级下拉菜单中,而不是新建嵌套下拉菜单。
TIP
dropdown() 方法也接受一个函数来动态计算值。你可以将各种实用工具作为参数注入该函数。


设置下拉菜单宽度
可以使用 dropdownWidth() 方法设置下拉菜单宽度。选项对应 Tailwind 的 max-width 比例。可用选项为 ExtraSmall、Small、Medium、Large、ExtraLarge、TwoExtraLarge、ThreeExtraLarge、FourExtraLarge、FiveExtraLarge、SixExtraLarge 和 SevenExtraLarge:
use Filament\Actions\ActionGroup;
use Filament\Support\Enums\Width;
ActionGroup::make([
// Array of actions
])
->dropdownWidth(Width::ExtraSmall)

TIP
dropdownWidth() 方法也接受一个函数来动态计算值。你可以将各种实用工具作为参数注入该函数。
控制下拉菜单偏移
你可以使用 dropdownOffset() 方法控制下拉菜单的偏移量,默认偏移为 8。
use Filament\Actions\ActionGroup;
ActionGroup::make([
// Array of actions
])
->dropdownOffset(16)TIP
dropdownOffset() 方法也接受一个函数来动态计算值。你可以将各种实用工具作为参数注入该函数。
控制下拉菜单最大高度
可以使用 maxHeight() 方法为下拉内容设置最大高度,以便滚动。你可以传入一个 CSS 长度值:
use Filament\Actions\ActionGroup;
ActionGroup::make([
// Array of actions
])
->maxHeight('400px')TIP
maxHeight() 方法也接受一个函数来动态计算值。你可以将各种实用工具作为参数注入该函数。