【问题标题】:How to add buttons to the "ExpansionTile Card" widget in flutter如何在颤动中向“ExpansionTile Card”小部件添加按钮
【发布时间】:2022-07-20 18:05:25
【问题描述】:

我使用 ExpansionTile Card 小部件来显示订单历史,当你点击这个小部件时,应该会出现额外的信息(但我认为这并不难)。问题是我不知道如何将编辑按钮放置在小部件本身中(在部署之前)。我想像照片中那样做。也许有人知道怎么做???我会感谢我的帮助。这是我的代码(注释的是我尝试制作但没有ExpansionTile卡的代码。但它不适合,因为它给了我一个错误)

我的形象(如我所愿)

图像(现在)

我的代码小部件

    _listItemColumn({
        required String name,
        required String date,
        required String status,
        required String id,
      }) {

        return Column(

          children: [
            Padding(
              padding: const EdgeInsets.fromLTRB(
                  Margins.medium, Margins.tiny, Margins.tiny, Margins.small),
              child: ExpansionTileCard(
              title: Text(name),
              subtitle: Text(date),
              trailing: SizedBox.shrink(),

              // Row(
              //   mainAxisAlignment: MainAxisAlignment.center,
              //   mainAxisSize: MainAxisSize.max,
              //   children: [
              //     Expanded(
              //       child: Column(
              //         mainAxisAlignment: MainAxisAlignment.end,
              //         crossAxisAlignment: CrossAxisAlignment.start,
              //         children: [
              //           Text(
              //             name,
              //             textAlign: TextAlign.start,
              //             maxLines: 2,
              //             style: const TextStyle(
              //               fontSize: FontSize.medium,
              //               fontWeight: FontWeight.w300,
              //             ),
              //           ),
              //           Container(
              //             height: Margins.tiny,
              //           ),
              //           Text(
              //             date,
              //             textAlign: TextAlign.left,
              //             maxLines: 1,
              //             style: TextStyle(
              //               color: Colorz.textGray,
              //               overflow: TextOverflow.ellipsis,
              //               fontSize: FontSize.small,
              //             ),
              //           ),
              //         ],
              //       ),
              //     ),
              //     Column(
              //       mainAxisAlignment: MainAxisAlignment.start,
              //       crossAxisAlignment: CrossAxisAlignment.end,
              //       children: [
              //         Material(
              //           color: Colorz.white,
              //           child: InkWrapper(
              //             splashColor: Colorz.lighterGray,
              //             child: IconButton(
              //                 alignment: Alignment.center,
              //                 icon: SvgPicture.asset(
              //                   Img.listItemMenu,
              //                 ),
              //                 onPressed: null
              //             ),
              //             onTap: () {
              //             },
              //           ),
              //         ),
              //         Text(
              //           status,
              //           textAlign: TextAlign.left,
              //           maxLines: 1,
              //           style: TextStyle(
              //             color: _colorStatus(status),
              //             overflow: TextOverflow.ellipsis,
              //             fontSize: FontSize.tiny,
              //           ),
              //         ),
              //       ],
              //     )
              //   ],
              // ),
            ),
        ),
      ]
        );

      }
    }

也就是说,我可以以某种方式将这段代码添加到标题和副标题中:

 Column(
        mainAxisAlignment: MainAxisAlignment.start,
                    crossAxisAlignment: CrossAxisAlignment.end,
                    children: [
                      Material(
                        color: Colorz.white,
                        child: InkWrapper(
                          splashColor: Colorz.lighterGray,
                          child: IconButton(
                              alignment: Alignment.center,
                              icon: SvgPicture.asset(
                                Img.listItemMenu,
                              ),
                              onPressed: null
                          ),
                          onTap: () {
                          },
                        ),
                      ),
                      Text(
                        status,
                        textAlign: TextAlign.left,
                        maxLines: 1,
                        style: TextStyle(
                          color: _colorStatus(status),
                          overflow: TextOverflow.ellipsis,
                          fontSize: FontSize.tiny,
                        ),
                      ),
                    ],
                  )

【问题讨论】:

  • 您可以为此使用trailing

标签: flutter dart flutter-layout


【解决方案1】:

trailing: SizedBox.shrink(), 替换为

trailing: IconButton(
  icon: Icon(Icons.more_vert),
  onPressed: () {},
),

如果您需要文本,请使用列小部件将其包装起来。

【讨论】:

    猜你喜欢
    • 2019-06-27
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 2022-01-19
    相关资源
    最近更新 更多