【发布时间】:2021-07-31 00:12:57
【问题描述】:
为什么Positioned红色widget是透明的,让Second Label Text widget可以透过它看到?
设置: 栏目:
- 堆栈
- 文本字段
- 已定位
- 红色容器
- TextField(第二个标签文本)
其目的是红色小部件以不透明的方式覆盖其下方的文本字段。
谢谢
@override
Widget build(BuildContext context) {
const pad = 16.0;
const vertPadding = 10.0;
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Column(children: [
Stack(clipBehavior: Clip.none, children: [
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 5.0),
child: TextField(
autocorrect: false,
maxLines: null,
decoration: InputDecoration(
border: _border,
labelText: "Label text",
labelStyle: TextStyle(color: Colors.grey),
),
),
),
Positioned(
top: pad,
left: pad,
width: 200.0,
child: Container(
decoration: BoxDecoration(
color: Colors.red,
),
width: 200,
height: 84,
child: Padding(
padding:
const EdgeInsets.fromLTRB(16, vertPadding, 0, vertPadding),
child: Container(),
),
),
),
]),
Padding(
padding: const EdgeInsets.fromLTRB(25, 0, 25, 0),
child: TextField(
decoration: InputDecoration(
border: _border,
labelText: "Second Label text",
),
),
)
]),
);
}
final OutlineInputBorder _border = OutlineInputBorder(
borderRadius: BorderRadius.circular(4.0),
borderSide: BorderSide(
color: Colors.grey,
width: 1.0,
),
);
【问题讨论】:
-
如果在
Colors.red之后添加.withOpacity(1)会怎样? -
是的,我试过了,结果一样。我什至添加了一个装饰图像作为装饰,一个不透明的图像,同样的东西。
标签: flutter transparent flutter-positioned