现在这个代码收到消息后展示在屏幕频闪很严重可以让他更流畅的输出吗给我你改好后的最终代码import dartasync;import packageachievement_viewachievement_viewdart;import packagediodiodart;import packagefluttermaterialdart;import packagemuse_nepu_course
可以尝试使用ListView.builder来优化频闪问题,这里给出修改后的代码:
import 'dart:async';
import 'package:achievement_view/achievement_view.dart'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:muse_nepu_course/chat/flutter_chat_ui.dart'; import 'package:flutter_chat_types/flutter_chat_types.dart' as types; import 'package:file_picker/file_picker.dart'; import 'package:flutter_markdown/flutter_markdown.dart'; import 'package:http/http.dart' as http; import 'package:muse_nepu_course/global.dart'; import 'package:muse_nepu_course/home.dart'; import 'package:uuid/uuid.dart'; import 'package:path_provider/path_provider.dart'; import 'package:mime/mime.dart'; import 'package:flutter/services.dart' show Clipboard, ClipboardData, Uint8List, rootBundle; import 'dart:convert'; import 'dart:io'; import 'package:image_picker/image_picker.dart';
class chat_gpt extends StatefulWidget { @override _chat_gptState createState() => _chat_gptState(); }
var _filteredStringList = []; var _stringList = []; int _selectedIndex = -1; String? _selectedValue;
class _chat_gptState extends State<chat_gpt> { StreamController<List<types.Message>> _streamController = StreamController(); late String xdata = ''; final _user = const types.User( id: '82091008-a484-4a89-ae75-a22bf8d6f3ac', );
//从assets/prompts.json中读取数据,并转换为List<Map<String, String>> void loadprompts() async { String prompt = await rootBundle.loadString('assets/prompts.json'); _stringList = json.decode(prompt); _filteredStringList = List.from(_stringList); }
int getindex() { return _selectedIndex; }
@override void initState() { super.initState(); Global.bottombarheight = 60;
Dio dio = Dio();
dio
.get('https://chatgpt-chatgpt-lswirmtbkx.us-east-1.fcapp.run/')
.then((response) {
print(response.data);
});
_loadMessages();
loadprompts();
}
@override void dispose() { _streamController.close(); super.dispose(); }
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('双击对话复制'),
backgroundColor: Global.home_currentcolor,
//加入返回按鈕
leading: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () {
//跳转到主页面
Navigator.push(context, MaterialPageRoute(builder: (context) {
return HomePage();
}));
},
),
actions:
_addMessage(textMessage);
sendtoserver(
textMessage.text,
);
//返回主页面
Navigator.pop(context);
});
},
);
},
));
});
},
),
],
)
原文地址: https://www.cveoy.top/t/topic/fDjk 著作权归作者所有。请勿转载和采集!