Browse Source

style(agent_view): 修复语音/文字输入控件高度不一致问题

newdev_shunjiawei
lxm 1 year ago
parent
commit
ef5545db0e
  1. 50
      lib/modules/agent/views/agent_view.dart

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

@ -21,8 +21,7 @@ class AgentView extends StatelessWidget {
backgroundColor: backgroundColor,
leading: IconButton(
icon: Icon(Icons.arrow_back_ios,
color: isDarkMode ? Colors.white : Colors.black87,
size: 20),
color: isDarkMode ? Colors.white : Colors.black87, size: 20),
onPressed: () => Get.back(),
),
titleSpacing: 0,
@ -88,18 +87,18 @@ class AgentView extends StatelessWidget {
actions: [
// TTS开关
Obx(() => IconButton(
icon: Icon(
controller.isTtsEnabled.value
? Icons.volume_up
: Icons.volume_off,
color: controller.isTtsEnabled.value
? primaryColor
: isDarkMode
? Colors.grey[400]
: Colors.grey,
),
onPressed: () => controller.toggleTts(),
)),
icon: Icon(
controller.isTtsEnabled.value
? Icons.volume_up
: Icons.volume_off,
color: controller.isTtsEnabled.value
? primaryColor
: isDarkMode
? Colors.grey[400]
: Colors.grey,
),
onPressed: () => controller.toggleTts(),
)),
// 更多选项
Container(
@ -107,7 +106,8 @@ class AgentView extends StatelessWidget {
height: 34,
margin: const EdgeInsets.only(right: 8),
decoration: BoxDecoration(
color: isDarkMode ? Colors.white.withOpacity(0.1) : Colors.grey[100],
color:
isDarkMode ? Colors.white.withOpacity(0.1) : Colors.grey[100],
shape: BoxShape.circle,
boxShadow: [
if (!isDarkMode)
@ -120,8 +120,7 @@ class AgentView extends StatelessWidget {
),
child: PopupMenuButton(
icon: Icon(Icons.more_vert,
color: isDarkMode ? Colors.white : Colors.black87,
size: 20),
color: isDarkMode ? Colors.white : Colors.black87, size: 20),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
),
@ -153,10 +152,12 @@ class AgentView extends StatelessWidget {
() => ListView.builder(
controller: controller.scrollController,
reverse: true,
padding: const EdgeInsets.symmetric(vertical: 16, horizontal: 16),
padding:
const EdgeInsets.symmetric(vertical: 16, horizontal: 16),
itemCount: controller.messages.length,
itemBuilder: (context, index) {
final message = controller.messages[controller.messages.length - 1 - index];
final message = controller
.messages[controller.messages.length - 1 - index];
return Padding(
padding: const EdgeInsets.only(bottom: 8),
child: MessageBubble(
@ -307,6 +308,7 @@ class AgentView extends StatelessWidget {
if (isTextMode) {
// 文本输入模式 - 注意观察图片模式时的高度变化
return Container(
height: 44,
padding: const EdgeInsets.symmetric(horizontal: 16),
decoration: BoxDecoration(
color: Colors.grey[200],
@ -330,7 +332,9 @@ class AgentView extends StatelessWidget {
minLines: isImageActive ? 2 : 1,
style: TextStyle(
fontSize: 15,
color: isDarkMode ? Colors.white : Colors.black87,
color: isDarkMode
? Colors.white
: Colors.black87,
),
decoration: InputDecoration(
hintText: isImageActive
@ -470,7 +474,8 @@ class AgentView extends StatelessWidget {
Icon(Icons.camera_alt,
color: primaryColor, size: 20),
const SizedBox(width: 8),
const Text('拍照', style: TextStyle(fontSize: 14)),
const Text('拍照',
style: TextStyle(fontSize: 14)),
],
),
),
@ -481,7 +486,8 @@ class AgentView extends StatelessWidget {
Icon(Icons.photo_library,
color: primaryColor, size: 20),
const SizedBox(width: 8),
const Text('从相册选择', style: TextStyle(fontSize: 14)),
const Text('从相册选择',
style: TextStyle(fontSize: 14)),
],
),
),

Loading…
Cancel
Save