flutter技巧

1,161

我正在参加「掘金·启航计划」

Row里面使用ListView时,页面不显示的原因是

没有空间撑开
ListView的外层要加上Expanded
只能在Column,Row,Flex以及它们的子组件,这里指的是子组件而不是子结点,是指继承Column,Row,Flex的子组件。
Expanded的父结点必须是Column,Row,Flex以及它们的子组件,不能是Column->Container->Expanded(表示结点路径)
在使用Expanded时,如果在它的上层结点中有List类型的结点,比如SingleChildScrollView,或者ListTile等,
其滑动方向应该与Expanded填充方向不同,不然会报错。
Expanded作用是,填充剩余空间。

flutter切换

git branch 		--查看所有分支

git checkout 分支名   --切换到分支

git checkout -b 分支名   -- 在此分支上创建新分支

flutter channel 分支名  --切换到分支

flutter channel stable  -- 切换到当前分支

flutter upgrade  -- 升级软件包


使用一:  先试用git checkout 切换到flutter的某个版本分支

          再使用 flutter channel stable切换当前环境的flutter到某个分支


使用二: flutter version  --列出所有版本号

		flutter version 版本号  --切换到某个版本号

flutter问题:

1、flutter出现`git: fatal: unable to access 'github.com/flutter/flu…': OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

Switching channels failed with error code 128.`

可以使用 git config --global http.sslVerify false  忽略证书

2、出现:Failed to connect to github.com port 443: Connection refused

方法一:关闭代理

git config --global --unset http.proxy
git config --global --unset https.proxy

添加全局代理:

git config --global http.proxy
git config --global https.proxy



'${Routes.bulletinBoardPage}?readFlag=' + readFlag)

3、Another exception was thrown: There should be exactly one item with [DropdownButton]'s value:

原因:DropdownButton中value的值和DropdownMenuItem中value的值都不相同,无法显示选中状态
解决:修改DropdownButton中value的值和DropdownMenuItem中value的值有一个相同的值

缓存的使用

import 'package:localstorage/localstorage.dart';

final LocalStorage storage = new LocalStorage('organ_type');

storage.setItem('todos', list.toJSONEncodable());
storage.getItem('todos') ?? [];

Row

 mainAxisAlignment: MainAxisAlignment.spaceBetween, --水平两边分布,此属性只在Row里生效

Column

 crossAxisAlignment: CrossAxisAlignment.spaceBetween,, --垂直两端分布,此属性只在Column里生效

flutter打包

打包配置见 www.jspang.com/article/44#…

// keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

D:\Program\Android\'Android Studio'\jre\bin\keytool -genkey -v -keystore D:\key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

D:\software\Android\jre\bin\keytool -genkey -v -keystore D:\myprojects\company_project\feature\key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

flutter build apk

如何获取软件系统信息

import 'package:package_info/package_info.dart';
PackageInfo.fromPlatform().then((PackageInfo packageInfo) {
  String appName = packageInfo.appName;
  String packageName = packageInfo.packageName;
  String version = packageInfo.version;
  String buildNumber = packageInfo.buildNumber;
});

自定义颜色

color:Color(0xFFF3F5FB),

color: Color.fromARGB(255, 24, 34, 34)),

color:Color.blue

Icon(Icons.audiotrack, color: Colors.green, size: 30.0,),