如何控制 CupertinoContextMenu 分隔线厚度

问题描述 投票:0回答:1

我想控制 CupertinoContextMenu 分隔线的厚度,我在主题类中没有看到这个属性,而且我也无法发现小部件属性上的自定义,这怎么可能?

我的代码:

return CupertinoContextMenu.builder(
  builder: (context, animation) {
    return SizedBox(
      width: MediaQuery.of(context).size.width /
          (mainAxisCount - animation.value),
      height: MediaQuery.of(context).size.width /
          (mainAxisCount - animation.value),
      child: cardBox(context,
          ratioFactor: animation.value < sizeLimit
              ? null
              : (size * animation.value),
          shatter: shatter,
          actions: actions,
          animated: animation.value != 0.0),
    );
  },
  actions: contextMenuActions,
);

目前结果:

enter image description here

预计可以稍微改变一下厚度。

预期的用户界面

enter image description here

flutter contextmenu flutter-cupertino
1个回答
0
投票

您无法直接更改分隔线的厚度。但有一个解决办法 参考:https://github.com/flutter/flutter/blob/54e66469a9/packages/flutter/lib/src/cupertino/context_menu.dart#L155

您可以将其重新创建到 context_menu_extended.dart 中,并且只需在 _ContextMenuSheet 小部件中即可。

更改装饰盒的宽度如下。

DecoratedBox(
                  decoration: BoxDecoration(
                    border: Border(
                      top: BorderSide(
                        color: CupertinoDynamicColor.resolve(
                          _borderColor,
                          context,
                        ),
                        width: 0.4, // Change the width here.
                      ),
                    ),
                  ),
                  position: DecorationPosition.foreground,
                  child: action,
                ),
© www.soinside.com 2019 - 2024. All rights reserved.