Browse Source

refactor(agent_view): 优化扩展选项按钮的布局和滚动行为

将Row改为Wrap布局实现按钮自动换行
添加水平滚动确保在小屏幕设备上可用
调整容器高度和边距以改善视觉效果
weicu
lxm 1 year ago
parent
commit
fd54772946
  1. 124
      lib/modules/agent/views/agent_view.dart

124
lib/modules/agent/views/agent_view.dart

@ -1,5 +1,6 @@
import 'dart:async'; import 'dart:async';
import 'dart:io'; import 'dart:io';
import 'dart:math';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import '../controllers/agent_controller.dart'; import '../controllers/agent_controller.dart';
@ -731,62 +732,77 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver {
return AnimatedContainer( return AnimatedContainer(
duration: const Duration(milliseconds: 300), duration: const Duration(milliseconds: 300),
curve: Curves.easeInOut, curve: Curves.easeInOut,
height: isExpanded ? 120.h : 0, // 调整高度以适应按钮尺寸 height: isExpanded ? 100.h : 0, // 调整高度以适应按钮尺寸
child: isExpanded child: isExpanded
? Container( ? LayoutBuilder(
margin: EdgeInsets.only(top: 8.h), // 添加LayoutBuilder获取实际约束
padding: builder: (context, constraints) {
EdgeInsets.symmetric(horizontal: 16.w), return SingleChildScrollView(
child: Row( // 确保内容可滚动
mainAxisAlignment: MainAxisAlignment scrollDirection:
.spaceEvenly, // 改为均匀分布 Axis.horizontal, // 水平滚动
children: [ child: Container(
// 相机按钮 margin: EdgeInsets.only(top: 16.h),
_buildPlusOptionButton( padding: EdgeInsets.symmetric(
context: context, horizontal: 16.w),
icon: Icons.camera_alt, // 根据可用宽度调整容器宽度
label: 'takePhoto'.tr, // 拍照 width: max(constraints.maxWidth,
onTap: () async { 300.w), // 最小300宽
//controller.collapsePlusOptions(); child: Wrap(
await controller.takePhoto(); // 使用Wrap替代Row,自动换行
}, alignment: WrapAlignment.center,
isDarkMode: isDarkMode, spacing: 26.w, // 按钮水平间距
), runSpacing: 8.h, // 按钮垂直间距
// 相册按钮 children: [
_buildPlusOptionButton( // 相机按钮
context: context, _buildPlusOptionButton(
icon: Icons.photo_library, context: context,
label: 'photoAlbum'.tr, // 相册 icon: Icons.camera_alt,
onTap: () async { label: 'takePhoto'.tr, // 拍照
//controller.collapsePlusOptions(); onTap: () async {
await controller.pickImage(); //controller.collapsePlusOptions();
}, await controller.takePhoto();
isDarkMode: isDarkMode, },
), isDarkMode: isDarkMode,
// 文件按钮(预留位置) ),
// _buildPlusOptionButton( // 相册按钮
// context: context, _buildPlusOptionButton(
// icon: Icons.folder, context: context,
// label: '文件', icon: Icons.photo_library,
// onTap: () { label: 'photoAlbum'.tr, // 相册
// //controller.collapsePlusOptions(); onTap: () async {
// // TODO: 实现文件选择功能 //controller.collapsePlusOptions();
// }, await controller.pickImage();
// isDarkMode: isDarkMode, },
// ), isDarkMode: isDarkMode,
// 通话按钮 ),
_buildPlusOptionButton( // 文件按钮(预留位置)
context: context, // _buildPlusOptionButton(
icon: Icons.phone, // context: context,
label: 'makeCall'.tr, // 打电话 // icon: Icons.folder,
onTap: () { // label: '文件',
// 启动打电话模式 // onTap: () {
controller.startPhoneCall(); // //controller.collapsePlusOptions();
}, // // TODO: 实现文件选择功能
isDarkMode: isDarkMode, // },
// isDarkMode: isDarkMode,
// ),
// 通话按钮
_buildPlusOptionButton(
context: context,
icon: Icons.phone,
label: 'makeCall'.tr, // 打电话
onTap: () {
// 启动打电话模式
controller.startPhoneCall();
},
isDarkMode: isDarkMode,
),
],
),
), ),
], );
), },
) )
: const SizedBox.shrink(), : const SizedBox.shrink(),
); );

Loading…
Cancel
Save