目錄
1.1 安卓release包缺少libflutter.so
1.2 AndroidStudio匯入專案後自動變為model,沒有Flutter目錄
1.3 輸入框內容為空時,長按不顯示貼上工具欄
1.4 SWIFT_VERSION '5.0' is unsupported, supported versions are: 3.0, 4.0, 4.2
1.5 複製貼上皮膚英文的問題
1.6 呼叫庫的時候報Methods marked with @UiThread must be executed on the main thread.Current thread: XXXX
1.7 用Navigator.of(context).pushNamed(routeName)
如何傳遞引數
1.8 監聽NestedScrollView
中body
屬性裡的widget
滾動事件
1.1 安卓release包缺少libflutter.so
修改/android/app/build.gradle
檔案如下
android{
defaultConfig{
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
buildTypes {
debug {
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
release {
ndk {
abiFilters "armeabi-v7a"
}
}
}
}
複製程式碼
1.2 AndroidStudio匯入專案後自動變為model,沒有Flutter目錄
解決方法: 在匯入專案時選擇下面選項 File-Open-選中你的專案1.3 輸入框內容為空時,長按不顯示貼上工具欄
將輸入框中的autoFocus
屬性為ture
去掉
1.4 SWIFT_VERSION '5.0' is unsupported, supported versions are: 3.0, 4.0, 4.2
將專案開啟為ios專案,然後在檔案列面中找到Pods(建議升級xcode即可解決)
1.5 複製貼上皮膚英文的問題
在pubspec.yaml
新增國際化支援,然後執行flutter packages get
dependencies:
...
flutter_localizations:
sdk: flutter
複製程式碼
找到程式碼MaterialApp
或者CupertinoApp
或者WidgetsApp
的檔案,新增下面程式碼即可
MaterialApp(
//...
//new
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate
],
supportedLocales:[
Locale('zh',''),
Locale('en','')
],
//new
)
複製程式碼
1.6 呼叫庫的時候報Methods marked with @UiThread must be executed on the main thread.Current thread: XXXX
出現該異常的主要原因是Flutter1.7.8
版本新增了執行緒安全,需要原生在主執行緒中返回給Flutter
解決方法:
- 庫的問題?
到pub庫中找到最新的版本,更改最新的版本,然後執行
flutter packages get
- 自己寫的庫問題? 假如:
//Result result flutter的result
new Thread(new Runnable() {
public void run() {
//.....
result.success(null);//這裡就會導致異常
}).start();
複製程式碼
改為
//Result result flutter的result
new Thread(new Runnable() {
public void run() {
//.....
new Handler().post(new Runnable() {
@Override
public void run() {
result.success(file.getAbsolutePath());
}
});
}).start();
複製程式碼
上面是虛擬碼,不建議這樣做,可能會導致記憶體溢位
1.7 用Navigator.of(context).pushNamed(routeName)
如何傳遞引數
傳遞引數
Navigator.of(context).pushNamed(routeName,arguments:{
“name":"我是引數"
})
複製程式碼
獲取引數
final arguments=ModalRoute.of(context).settings.arguments;
複製程式碼
1.8 監聽NestedScrollView
中body
屬性裡的widget
滾動事件
這個只要在對應的body
裡巢狀NotificationListener
即可
NestedScrollView(
// controller: scrollController,
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
return [
//....
];
},
body: Builder(
builder: (BuildContext context) => NotificationListener<ScrollNotification>(
onNotification: onNotification,//你要的監聽
child: CustomScrollView(
slivers: <Widget>[
//....
],
),
),
)
複製程式碼
歡迎在評論區留下你的bug問題,線上~~
寫
~~修bug