Browse Source

feat(live_room): 添加直播间输入对话框遮罩层点击关闭功能

- 添加 Positioned.fill 遮罩层组件
- 实现点击遮罩层隐藏对话框和键盘的功能
- 使用 GestureDetector 拦截点击事件
- 调用 FocusScope.of(context).unfocus() 隐藏键盘
- 调用 _hideInputDialog() 方法隐藏对话框
- 设置遮罩层颜色为透明
- 调整组件层级结构确保对话框在遮罩层上方
master
Jolie 3 months ago
parent
commit
2411199174
1 changed files with 16 additions and 1 deletions
  1. 17
      lib/pages/discover/live_room_page.dart

17
lib/pages/discover/live_room_page.dart

@ -344,7 +344,21 @@ class _LiveRoomPageState extends State<LiveRoomPage> {
// SVGA
const SvgaPlayerWidget(),
//
if (_showInputDialog)
if (_showInputDialog) ...[
//
Positioned.fill(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
//
FocusScope.of(context).unfocus();
//
_hideInputDialog();
},
child: Container(color: Colors.transparent),
),
),
//
AnimatedPositioned(
duration: const Duration(milliseconds: 200),
curve: Curves.easeOut,
@ -358,6 +372,7 @@ class _LiveRoomPageState extends State<LiveRoomPage> {
onClose: _hideInputDialog,
),
),
],
],
),
),

Loading…
Cancel
Save