diff --git a/lib/modules/agent/views/agent_view.dart b/lib/modules/agent/views/agent_view.dart index f91b246ac..b71c2e2f1 100644 --- a/lib/modules/agent/views/agent_view.dart +++ b/lib/modules/agent/views/agent_view.dart @@ -594,8 +594,8 @@ class AgentView extends StatelessWidget { child: Divider( height: 1, thickness: 0.8, - indent: 12, - endIndent: 12, + indent: 0, + endIndent: 0, color: isDarkMode ? Colors.grey[700] : Colors.grey[300], ), ), @@ -611,101 +611,130 @@ class AgentView extends StatelessWidget { // 实现举报功能 showModalBottomSheet( context: context, + isScrollControlled: true, // 关键:允许弹窗随键盘移动 backgroundColor: isDarkMode ? AppColors.cardBackground : Colors.white, shape: RoundedRectangleBorder( borderRadius: BorderRadius.vertical(top: Radius.circular(16.r)), ), builder: (BuildContext context) { - return Container( - padding: EdgeInsets.all(16.w), - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + return Padding( + // 添加底部内边距以容纳键盘 + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).viewInsets.bottom, + ), + child: Container( + padding: EdgeInsets.all(16.w), + child: SingleChildScrollView( + // 添加滚动视图 + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - Text( - '举报', - style: TextStyle( - fontSize: 18.sp, - fontWeight: FontWeight.bold, - color: isDarkMode ? Colors.white : Colors.black, - ), + Stack( + alignment: Alignment.center, + children: [ + Center( + child: Text( + '举报', + style: TextStyle( + fontSize: 18.sp, + fontWeight: FontWeight.bold, + color: isDarkMode + ? Colors.white + : Colors.black, + ), + ), + ), + SizedBox( + height: 20.w, + ), + Positioned( + right: 0, + child: IconButton( + icon: Icon( + Icons.close, + color: isDarkMode + ? Colors.grey[400] + : Colors.black54, + ), + onPressed: () => Navigator.pop(context), + ), + ), + ], ), - IconButton( - icon: Icon( - Icons.close, - color: - isDarkMode ? Colors.white70 : Colors.black54, + Container( + padding: EdgeInsets.symmetric(horizontal: 12.w), + margin: EdgeInsets.only(bottom: 10.w), + child: Divider( + height: 1, + color: Colors.grey[300], ), - onPressed: () => Navigator.pop(context), ), - ], - ), - SizedBox(height: 16.h), - Wrap( - spacing: 8.w, - runSpacing: 8.h, - children: [ - _buildReportChip('有害/不安全', isDarkMode), - _buildReportChip('色情低俗', isDarkMode), - _buildReportChip('误导攻击', isDarkMode), - _buildReportChip('违法犯罪', isDarkMode), - _buildReportChip('隐私相关', isDarkMode), - _buildReportChip('侵犯我的著作权、名誉权等', isDarkMode), - _buildReportChip('其他', isDarkMode), - ], - ), - SizedBox(height: 16.h), - Container( - padding: EdgeInsets.all(12.w), - decoration: BoxDecoration( - color: - isDarkMode ? Colors.grey[800] : Colors.grey[200], - borderRadius: BorderRadius.circular(8.r), - ), - child: TextField( - maxLines: 3, - style: TextStyle( - color: isDarkMode ? Colors.white : Colors.black, + Wrap( + spacing: 8.w, + runSpacing: 8.h, + children: [ + _buildReportChip('有害/不安全', isDarkMode), + _buildReportChip('色情低俗', isDarkMode), + _buildReportChip('误导攻击', isDarkMode), + _buildReportChip('违法犯罪', isDarkMode), + _buildReportChip('隐私相关', isDarkMode), + _buildReportChip('侵犯我的著作权、名誉权等', isDarkMode), + _buildReportChip('其他', isDarkMode), + ], ), - decoration: InputDecoration( - hintText: '我们想知道你举报的原因,你可以描述你遇到的问题。', - hintStyle: TextStyle( - color: - isDarkMode ? Colors.white70 : Colors.black54, - fontSize: 14.sp, + SizedBox(height: 16.h), + Container( + padding: EdgeInsets.all(12.w), + decoration: BoxDecoration( + color: isDarkMode + ? Colors.grey[800] + : Colors.grey[200], + borderRadius: BorderRadius.circular(8.r), + ), + child: TextField( + maxLines: 3, + style: TextStyle( + color: isDarkMode ? Colors.white : Colors.black, + ), + decoration: InputDecoration( + hintText: '我们想知道你举报的原因,你可以描述你遇到的问题。', + hintStyle: TextStyle( + color: isDarkMode + ? Colors.white70 + : Colors.black54, + fontSize: 14.sp, + ), + border: InputBorder.none, + ), ), - border: InputBorder.none, ), - ), - ), - SizedBox(height: 14.h), - ElevatedButton( - style: ElevatedButton.styleFrom( - backgroundColor: Colors.blue, - foregroundColor: Colors.white, - padding: EdgeInsets.symmetric(vertical: 12.h), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(8.r), + SizedBox(height: 14.h), + ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: Colors.blue, + foregroundColor: Colors.white, + padding: EdgeInsets.symmetric(vertical: 12.h), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8.r), + ), + ), + child: Text('提交'), + onPressed: () { + Navigator.pop(context); + Get.snackbar( + '提示', + '举报已提交,我们会尽快处理', + backgroundColor: Colors.green.withOpacity(0.8), + colorText: Colors.white, + ); + }, ), - ), - child: Text('提交'), - onPressed: () { - // 处理举报提交逻辑 - Navigator.pop(context); - Get.snackbar( - '提示', - '举报已提交,我们会尽快处理', - backgroundColor: Colors.green.withOpacity(0.8), - colorText: Colors.white, - ); - }, + SizedBox(height: 8.h), + ], ), - SizedBox(height: 8.h), - ], + ), ), ); },