我正在制作一个屏幕,其中有一个架子图像以及一个加号图标,该加号图标用虚线边框覆盖整个图像。我想让虚线边框占据堆栈最大子项(图像)所允许的整个空间。我还希望虚线边框和加号图标的大小始终保持恒定的比例。这是我的代码:
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()
。每次它都会返回一个错误。这是我当前的输出:
您可以使用 Positioned 小部件强制虚线容器填充整个堆栈:
Positioned.fill(
child: DottedBorder(child: Container(child: const Icon(Icons.add),)),
)