【问题标题】:Flutter CupertinoContextMenu actions buttons not aligned centerFlutter CupertinoContextMenu 操作按钮未对齐中心
【发布时间】:2020-12-03 09:01:35
【问题描述】:

我有一个带有水平滚动的列表视图,并且我已将 CupertinoContextMenu 添加到图像中。 一切正常,但操作按钮未居中对齐。

我已经添加了代码。我也尝试过使用 wrap 脚手架。同样的问题。

我必须在图像中心位置下对齐操作按钮。

 Column(
                      crossAxisAlignment: CrossAxisAlignment.stretch,
                      mainAxisAlignment: MainAxisAlignment.start,
                      mainAxisSize: MainAxisSize.max,
                      children: <Widget>[
                        Center(child: _invoiceImageSlider()),
);

    // Image Slider List
  Widget _invoiceImageSlider(){
    return Container(
      height: 250,
      padding: EdgeInsets.fromLTRB(0, 0, 20, 0),
      child: ListView(
        // This next line does the trick.
        scrollDirection: Axis.horizontal,
        children: <Widget>[
          Container(
            width: 160.0,
            child: _invoiceContextMenu(),
          ),
          Container(
            width: 160.0,
            child: _invoiceContextMenu(),
          ),
          Container(
            width: 160.0,
            child: _invoiceContextMenu(),
          ),
          Container(
            width: 160.0,
            child: _invoiceContextMenu(),
          ),
        ],
      ),
    );
  }

  Widget _invoiceContextMenu(){
    return Container(
      child: CupertinoContextMenu(
        child: Container(
          child: _invoiceImage(),
        ),
        previewBuilder: (BuildContext context, Animation<double> animation, Widget child) {
          return FittedBox(
            fit: BoxFit.cover,               
            child: ClipRRect(
              borderRadius: BorderRadius.circular(64.0 * animation.value),
              child: Image.asset('assets/invoices/'+_invoiceInfo.filename),
            ),
          );
        },
        actions: <Widget>[
          CupertinoContextMenuAction(
            child:  Row(
                children: <Widget>[
                  Icon(
                    Feather.trash_2,
                    size: 25,
                    color: Colors.red,
                  ),
                  SizedBox(width: 10),
                  Text("Delete")
                ]
            ),
            onPressed: () {
              Navigator.pop(context);
            },
          ),
        ],
      ),
    );
  }

【问题讨论】:

    标签: flutter flutter-layout


    【解决方案1】:

    您可以像这样将整个 ContextMenu 居中:

    Align(
      alignment: Alignment.center,
      child: CupertinoContextMenu(),
    )
    

    希望这会有所帮助。干杯

    【讨论】:

      猜你喜欢
      • 2021-09-20
      • 1970-01-01
      • 2023-03-16
      • 2014-02-17
      • 2020-08-23
      • 1970-01-01
      • 2014-07-19
      • 2020-09-21
      • 2015-08-26
      相关资源
      最近更新 更多