博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flutter 问题解决总结
阅读量:5874 次
发布时间:2019-06-19

本文共 2666 字,大约阅读时间需要 8 分钟。

1. 路由开启下一个页面的,后退黑屏问题

当Navigator.push开启下一个页面,这个页面Navigator.pop(context)回到上一个页面出现黑屏,把当前页面的MaterialApp去掉就好

2. 弹软键盘,布局随键盘顶上去问题

在Scaffold加属性resizeToAvoidBottomPadding: false

3. 弹软键盘,iOS关闭不了软键盘

在布局外层包裹一层点击事件

InkWell(        onTap: () {            FocusScope.of(context).requestFocus(FocusNode());        },        child: child     )复制代码

4. ScrollView 嵌套 ListView 滚动问题

ListView.builder(        shrinkWrap: true,        physics: NeverScrollableScrollPhysics(),// 主要这个        padding: EdgeInsets.fromLTRB(15, 0, 15, 15),        itemCount: subjects.length,        itemBuilder: (BuildContext context, int position) {            return getItem(context, subjects[position]);      });复制代码

5. Android 嵌套Flutter 后退键返回上一级页面处理

override fun onBackPressed() {    if (flutterView != null) {        flutterView?.popRoute()    } else {        super.onBackPressed()    }}复制代码

6. 国际化 当用一些控件时 默认是英文这时候就需要国际化了(例如:选择日期组件)

依赖:flutter_localizations:             sdk: flutter  import 'package:flutter_localizations/flutter_localizations.dart';    return MaterialApp(     home: child,      localizationsDelegates: [        GlobalMaterialLocalizations.delegate,        GlobalWidgetsLocalizations.delegate,      ],      supportedLocales: [        const Locale('zh', 'CH'),        // const Locale('en', 'US'),      ],    );复制代码

7. Rxdart 进行网络请求 例如:

ProgressDialog _progressDialog = ProgressDialog(context);  ApiRepository.resetPassword(_phoneController.text, _codeController.text,          _newPasswordContrpller.text)      .doOnDone(() => _progressDialog.hide())      .doOnListen(() => _progressDialog.show())      .doOnError((error, stacktrace) {    if (error is DioError) {      showToast("加载失败,请检查网络连接");    }  }).listen((baseResp) {    if (baseResp != null && baseResp.isSuccess()) {      showToast("重置成功");      Navigator.pop(context);    } else {      showToast(baseResp.msg);    }  });复制代码

8. 集成image_pick不回调(Android端集成Flutter)

Android端添加回调代码

override fun onActivityResult(requestCode: Int, resultCode:Int, data: Intent?) {    super.onActivityResult(requestCode, resultCode, data)    flutterView?.pluginRegistry?.onActivityResult(requestCode, resultCode, data)}override fun onRequestPermissionsResult(requestCode: Int, permissions: Array
, grantResults: IntArray) { super.onRequestPermissionsResult(requestCode, permissions, grantResults) flutterView?.pluginRegistry?.onRequestPermissionsResult(requestCode, permissions, grantResults)}复制代码

9. Flutter 在iPhone输入框中长按复制粘贴弹窗报错的问题

有一种方法在iOS中显示Android的风格
Theme(    data: ThemeData(platform: TargetPlatform.android),    child: TextField(    *****)    )复制代码
还有一种方法实现iOS本来的风格 参考此文章

转载于:https://juejin.im/post/5c91a8da5188252db75696c0

你可能感兴趣的文章
ADB命令详解
查看>>
urllib模块学习
查看>>
Flume案例Ganglia监控
查看>>
HDU 4001 To Miss Our Children Time DP
查看>>
12C 新特性--全库缓存
查看>>
中国科学院数学与系统科学研究院关于2019年招收硕士研究生复试规程
查看>>
在Github中创建项目并与本地关联
查看>>
Qt的quit(),exit()以及close()事件捕获
查看>>
1002. 写出这个数 (20)
查看>>
普通软件项目开发过程规范(五)—— 总结
查看>>
css 样式(checkbox开关、css按钮)
查看>>
PS打造油画般的风景人像
查看>>
JS_高程3.基本概念(2)
查看>>
Leetcode 俄罗斯套娃信封问题
查看>>
二维正则表达式v0.1
查看>>
面向空实现类继承
查看>>
Java中MVC详解以及优缺点总结
查看>>
5——PHP逻辑运算符&&唯一的三元运算符
查看>>
学习HTML5+CSS3的第一天
查看>>
只打开一个子窗体
查看>>