BottomButtonPanel class

用于页面底部的组合按钮,由固定的一个主按钮(主题色按钮)、最多一个次按钮、数量不定的图标按钮组成。

布局规则: 主按钮 mainButtonName 必须存在 主按钮和次按钮的宽度大小是 不固定的,随着icon按钮的多少而变化

布局步骤(从左至右): 第一步:摆放icon按钮,如果iconButtonList为null,那么表示没有icon按钮。可用空间为 父节点分配。

第二步:摆放次按钮,如果[secondaryButtonName]为null,那么表示没有次按钮。可用空间为 父节点分配-icon按钮的空间
       如果没有icon按钮,那么可用空间为 父节点分的配空间

第三步:摆放主按钮,可用空间为 父节点分配空间分配完第一步和第二步的剩余空间

       如果只有一个主按钮,那么主按钮的宽度是 可用空间的最大宽度
       如果存在次按钮,那么两个按钮平分 可用的最大宽度
       如果存在次按钮和icon按钮,那么主按钮占满 剩余空间

组合按钮有一个白色的背景,并且存在一个右20, 左8, 底18, 上16的内边距,因此开发者不需要关注安全区域

  BrnBottomButtonPanel(
     mainButtonName: '主按钮',
     mainButtonOnTap: () {
         BrnToast.show('主按钮', context);
     },
  )

  BrnBottomButtonPanel(
     mainButtonName: '主按钮',
     secondaryButtonName: '次按钮',
     mainButtonOnTap: () {
         BrnToast.show('主按钮', context);
     },
     secondaryButtonOnTap: () {
         BrnToast.show('次按钮', context);
     },
     iconButtonList: [
         BrnVerticalIconButton(
            name: '写备注',
            iconWidget: Icon(Icons.add),
         ),
     ],
  )


相关按钮如下:

Inheritance

Constructors

BottomButtonPanel({Key? key, required String mainButtonName, required VoidCallback mainButtonOnTap, String? secondaryButtonName, VoidCallback? secondaryButtonOnTap, bool enableMainButton = true, bool enableSecondaryButton = true, List<VerticalIconButton>? iconButtonList})
const

Properties

enableMainButton → bool
主按钮是否可用 默认可用 如果设置为false,按钮置灰且不响应mainButtonOnTap
final
enableSecondaryButton → bool
次按钮是否可用 默认可用 如果设置为false,按钮置灰且不响应secondaryButtonName
final
hashCode → int
The hash code for this object.
no setterinherited
iconButtonList → List<VerticalIconButton>?
icon按钮的集合
final
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
mainButtonName → String
主按钮的文案
final
mainButtonOnTap → VoidCallback
主按钮点击的回调
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
secondaryButtonName → String?
次按钮的文案
final
secondaryButtonOnTap → VoidCallback?
次按钮的点击回调
final

Methods

build(BuildContext context) → Widget
Describes the part of the user interface represented by this widget.
override
createElement() → StatelessElement
Creates a StatelessElement to manage this widget's location in the tree.
inherited
debugDescribeChildren() → List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) → String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String
Returns a one-line detailed description of the object.
inherited
toStringShort() → String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

createByList(List<String> buttonTitleList, {VoidCallback? mainButtonOnTap, VoidCallback? secondaryButtonOnTap, bool enableMainButton = true, List<VerticalIconButton>? iconButtonList}) → Widget
新增快捷的数组使用方式 注意事项:由于该只支持主按钮和次按钮,因此如果数组长度大于2,也只会取出来第一个和第二个显示 如果数组的长度是1,那么只显示主按钮 如果数组的长度是0,那么不显示 数组的第1个是 主按钮 数组的第2个是 次按钮 buttonTitleList 数组显示文案 mainButtonOnTap 主按钮的点击事件 secondaryButtonOnTap 次按钮的点击事件 iconButtonList icon按钮