feat: 修改hidialog弹窗位置,增加macos dmg打包配置

This commit is contained in:
2026-01-12 00:45:52 -08:00
parent 2d1f391932
commit e6ee3d6db8
22 changed files with 393 additions and 157 deletions
@@ -11,9 +11,18 @@ import 'package:kaer_with_panels/app/widgets/dialogs/hi_dialog.dart';
import 'package:kaer_with_panels/app/widgets/hi_help_entrance.dart';
import 'package:kaer_with_panels/app/widgets/hi_base_scaffold.dart';
import 'package:easy_refresh/easy_refresh.dart';
class HINodePageView extends GetView<HINodeListController> {
class HINodePageView extends StatefulWidget {
const HINodePageView({super.key});
@override
State<HINodePageView> createState() => _HINodePageViewState();
}
class _HINodePageViewState extends State<HINodePageView> {
final GlobalKey _modeSwitcherKey = GlobalKey();
HINodeListController get controller => Get.find<HINodeListController>();
@override
Widget build(BuildContext context) {
return HIBaseScaffold(
@@ -69,6 +78,7 @@ class HINodePageView extends GetView<HINodeListController> {
// 2. 关键:移除多余的 SizedBox,让 Expanded 正确工作
Expanded(
child: Container(
key: _modeSwitcherKey,
padding: EdgeInsets.all(4.w),
decoration: BoxDecoration(
border: Border.all(
@@ -99,7 +109,19 @@ class HINodePageView extends GetView<HINodeListController> {
SizedBox(width: 12.w),
GestureDetector(
onTap: () {
Offset? targetOffset;
final renderBox = _modeSwitcherKey.currentContext?.findRenderObject() as RenderBox?;
if (renderBox != null) {
final position = renderBox.localToGlobal(Offset.zero);
final size = renderBox.size;
targetOffset = Offset(
position.dx + (size.width / 2) - (HIDialog.kDialogWidth / 2),
position.dy + size.height + 10.w,
);
}
HIDialog.show(
targetOffset: targetOffset,
customMessageWidget: Padding(
padding: EdgeInsets.symmetric(horizontal: 0.w, vertical: 0.w),
child: Column(