如何让我的容器占据整个空间?

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

我正在制作一个屏幕,其中有一个架子图像以及一个加号图标,该加号图标用虚线边框覆盖整个图像。我想让虚线边框占据堆栈最大子项(图像)所允许的整个空间。我还希望虚线边框和加号图标的大小始终保持恒定的比例。这是我的代码:

import "package:dotted_border/dotted_border.dart";
import "package:flutter/cupertino.dart";
import "package:flutter/material.dart";
import "package:flutter/widgets.dart";

class Default extends StatefulWidget {
  const Default({super.key});

  @override
  State<Default> createState() => _DefaultState();
}

class _DefaultState extends State<Default> {
  Map Articles = {};
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Column(
      children: [
        Row(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: [
          Text("Published", style: Theme.of(context).textTheme.headlineLarge),
          Text("Drafts", style: Theme.of(context).textTheme.headlineLarge),
        ],),
        Stack(
          alignment: Alignment.center,
          children: [
            Center(
              child: Container(
                  color: Colors.black,
                  child: const ColorFiltered(
                      colorFilter: ColorFilter.mode(
                          Color.fromARGB(76, 0, 0, 0), BlendMode.darken),
                      child: Row(
                        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                        children: [
                          Expanded(child: Image(image: AssetImage("assets/images/shelf.png"))),
                          Expanded(child: Image(image: AssetImage("assets/images/shelf.png"))),
                        ],
                      )))),
            DottedBorder(child: Container(child: const Icon(Icons.add),)),
      ]),
      ],
    ));
  }
}

我不想使用填充,因为这会使我的应用程序无响应。我尝试将容器的

width
height
以及图标的大小设置为
double.infinity
,并在容器的约束属性中添加
BoxConstraints.expand()
。每次它都会返回一个错误。这是我当前的输出:

enter image description here

我想要这个: enter image description here (加号可以更大)

flutter constraints responsive
1个回答
0
投票

您可以使用 Positioned 小部件强制虚线容器填充整个堆栈:

Positioned.fill(
child:  DottedBorder(child: Container(child: const Icon(Icons.add),)),
)
© www.soinside.com 2019 - 2024. All rights reserved.