当前位置: 首页 > wzjs >正文

iis7 网站无法显示该页面微信安装到手机

iis7 网站无法显示该页面,微信安装到手机,中小型企业网络拓扑图,百度下载appListTile 是 Flutter 中专门为列表项设计的标准行组件,它提供了一种简洁的方式来创建带有标题、副标题、图标和按钮的列表项。就像乐高积木一样,ListTile 帮你快速搭建出常见的列表布局。为什么需要 ListTile?想象你要创建一个联系人列表&…

ListTile 是 Flutter 中专门为列表项设计的标准行组件,它提供了一种简洁的方式来创建带有标题、副标题、图标和按钮的列表项。就像乐高积木一样,ListTile 帮你快速搭建出常见的列表布局。

 为什么需要 ListTile?

想象你要创建一个联系人列表,每个联系人需要显示:

  • 左侧头像
  • 中间名字(主标题)
  • 下方电话号码(副标题)
  • 右侧操作按钮

手动用 ColumnRow 和 Padding 组合实现会很繁琐,而 ListTile 把这些功能集成在一起,一行代码搞定!

ListTile 的核心属性:

ListTile(leading: Icon(Icons.person),        // 左侧图标/图片title: Text('联系人姓名'),           // 主标题(粗体)subtitle: Text('电话号码'),          // 副标题(灰色小字)trailing: Icon(Icons.arrow_forward), // 右侧图标/按钮onTap: () {},                       // 点击事件
);

好的!Card 是 Flutter 中专门用于创建卡片式布局的组件,它提供了默认的圆角、阴影和内边距,让你轻松实现现代应用中常见的卡片设计。

Card 的最简形式:

Card(child: Text('这是一个简单的卡片'),
);

效果:一个带有圆角和轻微阴影的白色矩形区域。

常用属性

Card(elevation: 8,           // 阴影深度(默认2)color: Colors.blue,    // 卡片背景色shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12), // 圆角半径),margin: EdgeInsets.all(16), // 卡片外边距child: Text('自定义样式的卡片'),
);

卡片

Card(child: Column(crossAxisAlignment: CrossAxisAlignment.start,children: [Image.network('https://example.com/news.jpg'), // 卡片顶部图片Padding(padding: EdgeInsets.all(12),child: Column(crossAxisAlignment: CrossAxisAlignment.start,children: [Text('这是新闻标题',style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),),SizedBox(height: 8),Text('这是新闻内容摘要...'),],),),],),
);  

下面是这个代码对应的卡片视觉示意图(简化版):

+----------------------------------------+
|                                        |
|  [新闻图片]                            |  ← Image.network(顶部占满宽度)
|  (https://example.com/news.jpg)        |
|                                        |
+----------------------------------------+
|  这是新闻标题                           |  ← Text(加粗、18号字体)
|                                        |
|  这是新闻内容摘要...                    |  ← Text(普通文本)
|                                        |  (上下左右内边距12,与标题间距8)
+----------------------------------------+

Flutter 中创建列表的 3 种方式

方式 1:直接用 ListView

适合少量固定数量的列表项:

ListView(children: [Text('第一项'),Text('第二项'),Text('第三项'),],
)
方式 2:用 ListView.builder 动态生成

适合大量数据(自动复用组件,性能更好):

ListView.builder(itemCount: 100, // 列表项数量itemBuilder: (context, index) {return Text('第 $index 项');},
)
方式 3:用 ListTile 快速创建标准列表项

适合联系人、设置项等标准行布局:

ListView(children: [ListTile(leading: Icon(Icons.person),title: Text('联系人1'),subtitle: Text('电话:13800000000'),),ListTile(leading: Icon(Icons.person),title: Text('联系人2'),subtitle: Text('电话:13900000000'),),],
)

下面是一个类似微信聊天列表界面的简化实现,包含头像、名称、消息预览和时间:

import 'package:flutter/material.dart';
import 'package:intl/intl.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({Key? key}) : super(key: key);@overrideWidget build(BuildContext context) {return MaterialApp(theme: ThemeData(primarySwatch: Colors.green),home: const WeChatHomePage(),);}
}class WeChatHomePage extends StatelessWidget {const WeChatHomePage({Key? key}) : super(key: key);// 模拟聊天数据List<Map<String, dynamic>> getChatData() {return [{'name': '张三','avatar': 'https://picsum.photos/100/100?random=1','message': '下午一起吃饭吗?','time': DateTime.now().subtract(const Duration(minutes: 5)),'unread': 2,},{'name': '李四','avatar': 'https://picsum.photos/100/100?random=2','message': '好的,我稍后回复你','time': DateTime.now().subtract(const Duration(hours: 1)),'unread': 0,},{'name': '工作群','avatar': 'https://picsum.photos/100/100?random=3','message': '王五:明天上午10点开会','time': DateTime.now().subtract(const Duration(hours: 3)),'unread': 5,},{'name': '妈妈','avatar': 'https://picsum.photos/100/100?random=4','message': '记得带伞,今天下雨','time': DateTime.now().subtract(const Duration(days: 1)),'unread': 0,},{'name': '同事A','avatar': 'https://picsum.photos/100/100?random=5','message': '项目文档已发送,请查收','time': DateTime.now().subtract(const Duration(days: 1)),'unread': 1,},];}@overrideWidget build(BuildContext context) {final chatData = getChatData();return Scaffold(appBar: AppBar(title: const Text('微信'),actions: [IconButton(icon: const Icon(Icons.search), onPressed: () {}),IconButton(icon: const Icon(Icons.add), onPressed: () {}),],),body: ListView.builder(itemCount: chatData.length,itemBuilder: (context, index) {final chat = chatData[index];final formattedTime = _formatTime(chat['time']);return Column(children: [// 分隔线(除了第一个)if (index > 0) const Divider(height: 0),// 聊天项ListTile(leading: CircleAvatar(backgroundImage: NetworkImage(chat['avatar']),radius: 28,),title: Text(chat['name'],style: TextStyle(fontWeight: chat['unread'] > 0 ? FontWeight.bold : FontWeight.normal,),),subtitle: Text(chat['message'],maxLines: 1,overflow: TextOverflow.ellipsis,style: TextStyle(color: Colors.grey[600],),),trailing: Column(mainAxisAlignment: MainAxisAlignment.center,crossAxisAlignment: CrossAxisAlignment.end,children: [// 时间Text(formattedTime,style: TextStyle(fontSize: 12,color: Colors.grey[500],),),// 未读数(如果有)if (chat['unread'] > 0)Container(margin: const EdgeInsets.only(top: 4),padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 1),decoration: BoxDecoration(color: Colors.red,borderRadius: BorderRadius.circular(10),),child: Text(chat['unread'].toString(),style: const TextStyle(color: Colors.white, fontSize: 12),),),],),onTap: () {ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('打开与 ${chat['name']} 的聊天')));},),],);},),);}// 格式化时间(根据是否今天显示不同格式)String _formatTime(DateTime time) {final now = DateTime.now();final today = DateTime(now.year, now.month, now.day);final yesterday = today.subtract(const Duration(days: 1));if (DateTime(time.year, time.month, time.day).isAtSameMomentAs(today)) {// 今天:显示时:分return DateFormat('HH:mm').format(time);} else if (DateTime(time.year, time.month, time.day).isAtSameMomentAs(yesterday)) {// 昨天:显示"昨天"return '昨天';} else {// 其他:显示月-日return DateFormat('MM-dd').format(time);}}
}


文章转载自:

http://wBLxLwgQ.mkccd.cn
http://61g2MOep.mkccd.cn
http://n3nZdyL5.mkccd.cn
http://OeDvaBni.mkccd.cn
http://IGvdhd0H.mkccd.cn
http://ubJJ9ihl.mkccd.cn
http://Odz5kmEu.mkccd.cn
http://2llR9dmk.mkccd.cn
http://YsGnqrUI.mkccd.cn
http://n2EpO5Av.mkccd.cn
http://GObkLwUL.mkccd.cn
http://0OzsyJmc.mkccd.cn
http://Os7OQsx0.mkccd.cn
http://IhlKvb76.mkccd.cn
http://uIXPl1jH.mkccd.cn
http://jeRwRi9w.mkccd.cn
http://C9A2BgqR.mkccd.cn
http://hjQflEHL.mkccd.cn
http://Ie2w0iRC.mkccd.cn
http://00tRrUD7.mkccd.cn
http://NOnxJY58.mkccd.cn
http://HvuYi9xy.mkccd.cn
http://8Jjmjqjb.mkccd.cn
http://eySQVnGO.mkccd.cn
http://OAmFvsWa.mkccd.cn
http://MYg9jsWU.mkccd.cn
http://kjOm0nuw.mkccd.cn
http://nXCEYL1f.mkccd.cn
http://UbNaFjIj.mkccd.cn
http://GFF7R4nY.mkccd.cn
http://www.dtcms.com/wzjs/712062.html

相关文章:

  • 网站怎么做uc整合wordpress评分点评
  • 本地建设多个网站链接建设银行关方网站
  • 口碑好的定制网站建设公司泰安集团网站建设方案
  • 餐饮行业网站建设风格网站建设公司怎样
  • 营销网站的建设流程网站建设知识文章
  • 竞猜网站模板ps制作网站模板
  • 营销策划公司有哪些职位做网站建设优化的电话话术
  • 免费建立个人app网站网站模板免费下载网站
  • 高端酒店网站模板免费下载成都网站建设 龙兵
  • wordpress建站费用学院网站整改及建设情况报告
  • 个人博客网站开发历程免费人脉推广官方软件
  • 找人给公司做网站去哪找深圳工程交易中心官网
  • 如何做DJ网站社群营销怎么做
  • 移动端网站搭建网站托管目的是什么
  • 专业网站建设经费申请怎么开外贸网店
  • 做网站的收费标准天猫开店流程及费用2022
  • 北京网站制作收费标准网站模板对seo的影响吗
  • 河南省建设厅网站首页邯郸市城市建设局网站
  • 乒乓球网站建设目标学校网页制作视频教程
  • 网站做实名认证贵阳做网站软件
  • 电子商务网站开发背景商丘梁园区
  • 哪里有网站开发技术阿城区建设小学网站
  • 体验比较好的网站电子商务公共服务网
  • 前端网页培训班沈阳seo排名优化推广
  • 泉州pc网站开发开发公司前期部岗位职责
  • 免费个人网站模版ps网站投放广告赚钱吗
  • 企业公司如何做网站无锡论坛网本地网站
  • 网站建设经验王者荣耀恺和wordpress 怎么上传
  • 建设旅游电子商务网站的目的wordpress能恢复修改前吗
  • php网站建设思路不关站备案wordpress