Flutter学习记录-关于一些常见实现
底部导航栏
return new Scaffold(bottomNavigationBar: BottomNavigationBar(items: [BottomNavigationBarItem(icon: Icon(Icons.home,color: Color(0x00aaaaaaaa),),title: Text("投币",style: TextStyle(color: Color(0x00aaaaaaaa)),)),BottomNavigationBarItem(icon: Icon(Icons.home,color: Color(0x00aaaaaaaa),),title: Text("动态",style: TextStyle(color: Color(0x00aaaaaaaa)),)),BottomNavigationBarItem(icon: Icon(Icons.home,color: Color(0x00aaaaaaaa),),title: Text("我的",style: TextStyle(color: Color(0x00aaaaaaaa)),))],),);
网络图片
image: DecorationImage(image: NetworkImage("https://image.weilanwl.com/color2.0/plugin/cjkz2329.jpg"),fit: BoxFit.fitWidth,),
- 圆形头像
CircleAvatar(backgroundImage: NetworkImage("https://wx.qlogo.cn/mmopen/vi_32/LH99GfeT31hdYG8W8c6wRialyC4nicTfssDXeqtIs4f5XogNqHhTdmVIuQDeGcgE0KRlZyzAz7JO5Nc7yesHx9Lg/132",),),
4.制作水平滑动的区域
//组件类
import 'package:flutter/cupertino.dart';class ChooseListViewComponent{static ListView create(List<String> spanList){List<Widget> wl = new List<Widget>();for(var span in spanList){wl.add(Container(width: 80,child: Text(span,textAlign: TextAlign.center,style: TextStyle(color: Color(0x00cccccccc),fontSize: 20),),));}ListView lv = ListView(scrollDirection: Axis.horizontal,children: wl,);return lv;}
}//使用Container solrView = new Container(height: 20,margin: EdgeInsets.only(top: 7),child: ChooseListViewComponent.create(["123","321"]));
5.网络请求
import 'package:dio/dio.dart';
import 'dart:convert';class HttpRequest {static final Dio dio = Dio();static final String path = "https://minapp.cstbservice.top";static Future<Map<String, Object>> request<T>(String url, {String method = "get",Map<String, dynamic> params}) async {// 1.创建单独配置final options = Options(method: method,responseType: ResponseType.plain,);url = path + url;// 2.发送网络请求try {Response response = await dio.request(url, queryParameters: params, options: options);Map<String, Object> news = jsonDecode(response.data.toString());return news;} on DioError catch(e) {return null;}}
}//如何使用
void getHttp() async {print(await HttpRequest.request("/dynamic/getDynameicType"));
}
6.网络请求局部刷新
List<String> spanList = new List<String>(); //数据存放区
final StreamController<List<String>> spanListStreamController = StreamController<List<String>>(); //初始化/*** 异步请求*/
void getHttp() async {Map<String, Object> response = await HttpRequest.request("url地址");List<dynamic> data = response["data"];for(var item in data){spanList.add(item["name"]);}spanListStreamController.sink.add(spanList);
}class MainPage extends StatefulWidget {@overrideMainPageState createState() => MainPageState();
}class MainPageState extends State<MainPage> {MainPageState(){getHttp();}@overridevoid dispose(){spanListStreamController.close(); //关流super.dispose();}@overrideWidget build(BuildContext context) {xxxContainer solrView = new Container(height: 25,margin: EdgeInsets.only(top: 7),child: StreamBuilder(stream: spanListStreamController.stream,initialData: spanList,builder: (BuildContext context, AsyncSnapshot<List<String>> snapshot){return ChooseListViewComponent.create(snapshot.data);},));xxx}
7.图片缩放
Image.network(img,width: 200,height: 100,fit: BoxFit.fitWidth,),
8.左右布局Row
Container(margin: EdgeInsets.only(top: 80),constraints: BoxConstraints.tightFor(width: 200),child: Row(children: <Widget>[Text('点赞评论收藏', style: TextStyle(fontSize: 15)),Expanded(child: Text(''), // 中间用Expanded控件),Text('来自微信', style: TextStyle(fontSize: 12)),],)),
9.打包
//生成密钥
keytool -genkey -v -keystore D:/app/android/haitao_key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias keyalias
修改文件
signingConfigs{release{keyAlias 'keyalias'keyPassword '111'storeFile file('F:/Android/key.jks')storePassword '111'}debug{keyAlias 'keyalias'keyPassword '111'storeFile file('F:/Android/key.jks')storePassword '111'}}buildTypes {release {// TODO: Add your own signing config for the release build.// Signing with the debug keys for now, so `flutter run --release` works.signingConfig signingConfigs.release}}
///打包
flutter build apk
9.真机打包成功后图片不显示
///在AndroidManifest.xml文件的manifest标签下中添加<uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Flutter学习记录-关于一些常见实现相关推荐
- Flutter学习记录-开篇
Flutter学习记录-开篇 此博客是记录学习Flutter中的内容及遇到的一些问题. 我是跟着<Flutter实战>这本书来学习Flutter的. 以下是关于此书的一些简单介绍. 作者: ...
- Flutter学习记录——29.完整实践——实现一个简易日记本应用
文章目录 1.知识整理 2.项目实现 2.1 效果展示 2.2 项目概览 2.3 代码实现 2.3.1 引导页的实现 2.3.2 应用首页 2.3.3 第一个页面 2.3.4 时间工具类 2.3.5 ...
- Flutter学习记录——23.实现一个类似淘宝的商品展示页面
文章目录 1.知识整理 2.应用编写 2.1 应用编写目标 2.2 应用浏览 2.3 应用分析 2.4 应用实现 3.总结 经过前面两大部分的详细讲解,相信大家对大部分的布局方式.组件的使用.逻辑业务 ...
- Flutter学习记录(四、Flutter项目学习列表listView)
使用ListView组件来实现: import 'package:flutter/material.dart';void main() => runApp(new MaterialApp(tit ...
- Flutter学习记录(三、Flutter项目学习navBar的使用)
首先写好几个子页面 count.dart import 'package:flutter/material.dart'; class Count extends StatefulWidget{@ove ...
- Flutter学习记录(二、Flutter项目学习Widget)
在flutter当中,所有页面元素都是一个Widget,一个文本显示是widget,一个包含文本显示的容器也是widget,下面是三个demo: 1.一个简单的显示titlebar的app impor ...
- Flutter学习记录(一、Flutter环境搭建)
1.下载Flutter的SDK,并添加系统环境变量. 下载地址:https://pan.baidu.com/s/1OAZ3r4URSvNvtNMUMNWd7A 解压到指定文件夹.环境变量PATH中添加 ...
- flutter学习记录
1. flutter sdk下载和安装:在 Windows 操作系统上安装和配置 Flutter 开发环境 | Flutter 中文文档 | Flutter 中文开发者网站 2. 解压缩并配置系统变量 ...
- (个人学习记录)Solidworks常见界面操作问题汇总
Ⅰ类问题汇总 1. Solidwork部分插件图标变成灰色怎么解决 2. 标注的单位是m想改成mm怎么解决 3. 做运动仿真的时候添加不了引力和接触要怎么搞 4.画零件图的时候找不到曲面相关的命令 5 ...
最新文章
- 通过改进视频质量评估提升编码效率
- 关于 SAP Spartacus 服务器端渲染 SSR 无法使用窗口宽度以进行自适应设计的问题
- 【NOIP模拟】开車【回退贪心】【multiset】
- eclipse安装jsp
- 职业生涯设计的10点忠告
- 磁盘上没有足够的空间完成此操作_Win10硬盘怎么分区?Win10系统下新建磁盘分区图解教程...
- (十一)GDBdebug调试技术——malloc()和free()发生故障
- Keil 中 Error L6002U
- Spring事务传播机制详解
- weblogic安装与部署项目
- JavaScript:点击按钮打开/关闭网页
- 一切皆是文件:UNIX,Linux 操作系統的設計哲學
- openjdk和jdk_OpenJDK和HashMap…。 安全地教老狗新技巧(堆!)
- 企业级网络突然变得很卡解决办法
- Android和iOS人才招聘出现拐点 低能人才泛滥
- 图片灯箱插件-lightBox
- 我的过错不值得原谅,麻木的岁月我还要背负多久。
- 百万“悬赏” | 2022光合组织AI解决方案大赛Wanted You!
- -1-1 java 基础语法 java关键字 java 注释 常量 语句 运算符 函数 数组定义
- Android 9(P)之init进程启动源码分析指南之一
热门文章
- 《深入理解计算机系统》CSAPP
- vba 定义类_工作表中如何响应自定义事件
- centos8 安装geany
- opensplice dds v6.3.2_给你看个宝贝,近乎完美的DDS正弦波信号音生成器
- matlab 二值化图像反色,图像处理——灰度化、二值化、反色、饱和度、对比度...
- [OpenGL ES 02]OpenGL ES渲染管线与着色器
- MiniFlow,帮助理解TensorFlow关键概念--图
- java调用机器上的shell脚本
- AKKA 笔记 - 有限状态机 -2
- tomcat配置虚拟目录的方法