Flutter 点击区域弹出浮动层:使用 Stack 和 Positioned 实现
您可以使用 Flutter 中的 Stack 和 Positioned Widget 来实现点击区域弹出浮动层的交互效果。具体步骤如下:
-
创建一个 StatefulWidget,命名为 FloatingLayerButton,用来表示浮动层按钮。
-
在 FloatingLayerButton 的 build 方法中,使用 GestureDetector Widget 来监听点击事件,并在触发点击事件时显示浮动层。
-
在 FloatingLayerButton 的 State 类中创建一个 bool 类型的变量
_showLayer来控制浮动层的显示与隐藏。 -
在 FloatingLayerButton 的 State 类中,创建一个 Widget 类型的变量
_layer来表示浮动层内容。 -
在 FloatingLayerButton 的 State 类中,使用 Stack Widget 来实现浮动层的叠加效果,并使用 Positioned Widget 来控制浮动层的位置。
-
在 FloatingLayerButton 的 State 类中,根据
_showLayer变量的值来判断是否显示浮动层。如果_showLayer为 true,则显示浮动层,否则不显示。
下面是示例代码:
class FloatingLayerButton extends StatefulWidget {
final Widget child;
final Widget layer;
FloatingLayerButton({Key key, this.child, this.layer}) : super(key: key);
@override
_FloatingLayerButtonState createState() => _FloatingLayerButtonState();
}
class _FloatingLayerButtonState extends State<FloatingLayerButton> {
bool _showLayer = false;
@override
Widget build(BuildContext context) {
return Stack(
children: [
GestureDetector(
child: widget.child,
onTap: () {
setState(() {
_showLayer = !_showLayer;
});
},
),
if (_showLayer)
Positioned(
top: 80,
right: 20,
child: widget.layer,
),
],
);
}
}
使用示例:
FloatingLayerButton(
child: Icon(Icons.add),
layer: Container(
width: 120,
height: 80,
color: Colors.grey,
child: Center(
child: Text('浮动层内容'),
),
),
)
原文地址: https://www.cveoy.top/t/topic/mEAD 著作权归作者所有。请勿转载和采集!