博文

flutter_weixin聊天界面实现

 1、自定义聊天文本框 2、输入的数据用list储存 List<String> _messages = []; 3、加载遍历数据 ListView.builder(         itemCount: _messages.length,         itemBuilder: (BuildContext context, int index) {           // return ListTile(           //   title: Text(_messages[index]),           // );           return MessageCard( messageText: _messages[index], sentTime: getCurrentTime());         },       ), 效果展示: 完整代码: //message_card.dart import 'package:flutter/material.dart';   import 'chat_user_card.dart';   class MessageCard extends StatelessWidget {   final String messageText;   final String sentTime;     const MessageCard(       {super.key, required this.messageText, required this.sentTime});     @override   Widget build(BuildContext context) {     re...

flutter_weixin搜索高亮功能实现

 1、定义模型数组,储存搜索数据 //搜索得到的数组   List<String> models = [];     //所有联系人数据   List<String> allModels = [     '刘备',     '孙权',     "诸葛亮",     "赵云",     "周瑜",     "鲁肃",     "司马懿",     "袁绍",     "华佗",     "华雄",     "公孙瓒",     "刘表",     "典韦",     "黄忠",     "刘禅",     "徐庶",     "郭嘉",     "荀攸",     '曹操',   ]; 2、模型数组添加数据 //输入的字符   String words = '';   //搜索展示的内容   void searcherData(String text) {     models.clear();     words=text;     if (text.isNotEmpty) {       for (int i = 0; i < allModels.length; i++) {         String name = allModels[i];         if (name.contains(text)) {           models.add(name);         }     ...

flutter_weixin索引条实现

1、定义索引条 List<String> side 采用Stack,用Positioned将其位置调整到屏幕右侧 2、将姓名经行排序,使用PinyinHelper titlesList.sort((String a, String b) {       String aPinyin = PinyinHelper.getFirstWordPinyin(a).toUpperCase();       String bPinyin = PinyinHelper.getFirstWordPinyin(b).toUpperCase();       return aPinyin.compareTo(bPinyin); // 按照拼音首字母顺序比较     }); 3、将姓名按顺序展示到通讯录,每个字母的第一个姓名都有大写字母标识 if (PinyinHelper.getFirstWordPinyin(titlesList[index - 4])                             .substring(0, 1)                             .toUpperCase() ==                         PinyinHelper.getFirstWordPinyin(titlesList[index - 5])                             .substring(0, 1)         ...

getX测试

  弄一个简单的界面测试getx 使用的pub   get: ^4.6.1   get_storage: ^2.0.3   equatable: ^2.0.3 基础设置 颜色   import 'package:flutter/material.dart';   ​   class AppColors {   AppColors._();   ​   // Dark Theme colors   static const Color darkGrey = Color(0xff303041);   static const Color lightGrey = Color(0xFF3D3A50);   static const Color white = Color(0xFF0EA2F6);   static const Color burgundy = Color(0xFF880d1e);   static const Color spaceCadet = Color(0xFFF4FCFE);   ​   // Light Theme Colors   static const Color blue = Color(0xFF50B1EA);   static const Color babyPink = Color(0xFFFECEE9);   static const Color lavender = Color(0xFFEB9FEF);   static const Color gunMetal = Color(0xFF545677);   static const Color spaceBlue = Color(0xFF03254E);   static const Color darkBlue = Color(0xFF011C27);   } 对象结构   class Food {   String id;   String name...

仿今日头条-模板-我的界面

图片
 效果 index.dart library my ; export './state.dart' ; export './controller.dart' ; export './bindings.dart' ; export './view.dart' ; (固定格式) state.dart import 'package:get/get.dart' ; class MyState { final _obj = '' . obs ; set obj (value) => _obj . value = value ; get obj => _obj . value ; } controller.dart import 'package:get/get.dart' ; import 'package:test/pages/my/state.dart' ; class MyController extends GetxController { final state = MyState () ; MyController() ; } bindings.dart import 'package:get/get.dart' ; import 'controller.dart' ; class MyBinding implements Bindings { @override void dependencies () { Get.lazyPut<MyController>(() => MyController ()) ; } } view.dart import 'package:flutter/material.dart' ; import 'package:get/get_state_manager/src/simple/get_view.dart' ; import 'controller.dart' ; class MyPage extends GetView<MyController...