1.Cannot run with sound null safety, because the following dependencies
在运行的main.dart配置中添加:Additional run args:--no-sound-null-safety
2.DioError [DioErrorType.other]: Bad state: Insecure HTTP is not allowed by platform
AndroidManifest.xml增加 android:usesCleartextTraffic="true" android:networkSecurityConfig="@xml/network_security_config"
xml建network_security_config.xml
内容:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
3.git: already exists in the index
git rm -r --cached name
4.flutter:Vertical viewport was given unbounded height.
在ListView.builder加入shrinkWrap: true 只满足自身大小
physics: new NeverScrollableScrollPhysics(); 这个是为了取消当前ListView的下滑功能。否则你会发现,你触摸在子集ListView的时候滑动的是子的ListView
5.RenderObject: RenderCustomMultiChildLayoutBox#4ae34 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
child包在一个Expanded布局里
6.listview中相同控件复用导致的数据问题,如批改列表处于展示主观题修改分数控件后,切换到全部题型,导致第一题的批改控件的数据和之前的数据一样,拿到的数据还是旧的。
在批改控件中传入唯一值,在state类中存储一个临时唯一值和前面一样,在build方法中判断widget中存储的唯一值和state中存储的唯一值是否一样,不一样则需要重新拉取值,一般在initState回调中的数据重新赋值一遍,使用最新的值。
7.抽屉里面的数据无法通过外部刷新
需要把数据获取的根源带进去,每次重新获取。
8.更换endrawer的图标
appBar: AppBar(
actions: [
Builder(
builder: (context) => IconButton(
icon: Icon(Icons.filter),
onPressed: () => Scaffold.of(context).openEndDrawer(),
tooltip: MaterialLocalizations.of(context).openAppDrawerTooltip,
),
),
],
),
9.Widget ScrollablePositionedList.separated 监听滚动的索引位置
itemPositionsListener.itemPositions.value.iterator 此value中存放着屏幕展示的所有index数据,并且数据存放不一定按顺序,需要自己比较取出最大和最小值。
10.禁止Android 和iOS返回键功能
WillPopScope(
onWillPop: () async {
return false;
},
);
11.去掉HTML文本中的标签如<p>,但无法去掉 \n\t
dependencies:
html: ^0.15.0
import 'package:html/parser.dart';
final document = parse(htmlString);
final String parsedString = parse(document.body.text).documentElement.text;
12.设置一遍的阴影
通过Offset控制偏移,达到一边的阴影
decoration: BoxDecoration(
color: Colors.white,
boxShadow: [
BoxShadow(
color: Color(0x12000000),
offset: Offset(0, 4),
blurRadius: 5,
spreadRadius: 0,
)
]
)
13.Android低版本上的PopWindow可能不显示
需要手动设置宽高
setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
14.flutter和Android原生混合开发debug调试
先关闭待调试的APP,点击AS上的Flutter Attach按钮,然后打开App中的flutter界面开始调试
15.flutter项目如果在Android Studio中显示Loading Devices
需要再设置里面的dart选中Enable Dart support for the following modules;
16.隐藏状态栏
import 'package:flutter/services.dart';
隐藏状态栏
SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.bottom]);
隐藏底部操作栏
SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
都隐藏
SystemChrome.setEnabledSystemUIOverlays([]);
17.The context used to push or pop routes from the Navigator must be that of a widget that is a descendant of a Navigator widget
要使用Navigator,根元素不能是MaterialApp
实际上通过路由的方式打开界面
18.error: resource android:attr/lStar not found
compileSdkVersion升级到31 但升级到31需要java版本11所以不考虑这个方法 或
app的build.gradle 中添加
configurations.all {
resolutionStrategy {
force 'androidx.core:core-ktx:1.6.0'
}
}
修改compileSdkVersion targetSdkVersion 低于31
19.Cannot access 'androidx.core.view.MenuHost
MenuHost类是官方从androidx.core:core:1.7.0引入的,需要降低到1.6.0才不会出现此类
可以强制指定使用某个版本
resolutionStrategy {
force 'androidx.core:core-ktx:1.3.2'
force 'androidx.core:core:1.6.0'
force 'androidx.appcompat:appcompat:1.3.1'
force 'androidx.activity:activity:1.2.4'
}
20.编译器 (1.8.0_121) 中出现异常错误
修改Android Gradle Plugin Version 4.0.2 Gradle Version 6.1.1
21.flutter插件化开发中,如果安卓通过库的形式依赖进来,那么当flutter插件在其他地方使用时,也需要把安卓库一起依赖过去才能使用。
22.运行时报compileDebugKotlin错误
一般是因为插件库中的kotlin的版本和项目中版本不一致导致
23.本地拉分支和远程关联
git push --set-upstream origin branch_name
24.Failed assertion: line 1982 pos 12: 'hasSize'
出现这个的原因是因为Column中且套ListView,两个都是无限高度,所以就会报这个错误。如果高度可以固定使用Container包裹ListView,同时设置宽高。
25.Flutter解决报错Incorrect use of ParentDataWidget以及边界约束问题
解决方案是把Expanded这个控件给撤了,直接上ConstrainedBox。
Flutter解决报错Incorrect use of ParentDataWidget以及边界约束问题
26.flutter TextFiled 输入文字不上下居中
让上下内边距为0