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

android flutter 不能生成debug包_数据