从环境搭建开始flutter学习

当学习 Flutter 时,你可能需要参考一些学习文档。
以下是一些值得一读的 Flutter 学习文档:
1.Flutter 官方文档:Flutter 官方文档提供了全面的教程、API 参考和示例,是学习 Flutter 的最佳资源。文档可以在 https://flutter.dev/docs/get-started/intro 中找到。
2.Flutter 教程:Flutter 官方提供了一个基于官方文档的 Flutter 教程,包括 Flutter 的基础知识、应用开发、数据可视化等内容。教程可以在 https://flutter.dev/docs/get-started/tutorial 中找到。
3.Flutter 入门指南:这是一篇适合初学者的 Flutter 入门指南,涵盖了 Flutter 的基础知识、组件、布局、网络、数据存储等内容。指南可以在 https://www.runoob.com/flutter/flutter-tutorial.html 中找到。
4.Flutter 官方示例:Flutter 官方提供了一些示例,包括日历、天气、计算器、游戏等。这些示例可以帮助你快速入门 Flutter,同时也可以作为你自己应用的参考。
示例可以在 https://github.com/flutter/flutter/tree/master/examples 中找到,https://flutter.github.io/samples/#
5.Flutter 实战指南:这是一篇面向实战的 Flutter 指南,介绍了如何使用 Flutter 构建 Web 应用、React Native 应用、小程序等。指南可以在 https://www.jianshu.com/p/4f3d8e0f6a31 中找到。
6.学习路线

image.png

添加插件命令:flutter pub add “插件名称”

横线组件:Divider()。

和原生Android交互,Android端

    private static final String BATTERY_CHANNEL = "samples.flutter.io/battery";

    @Override
    public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
 
        new MethodChannel(flutterEngine.getDartExecutor(), BATTERY_CHANNEL).setMethodCallHandler(
                new MethodCallHandler() {
                    @Override
                    public void onMethodCall(MethodCall call, Result result) {
                        if (call.method.equals("getBatteryLevel")) {
                            System.out.println("onMethodCall");
//                                result.success("android数据");//正常数据
                                result.error("android报错数据", "数据内容", null);//会走抛异常数据

                        } else {
                            result.notImplemented();
                        }
                    }
                }
        );
    }

}

flutter端

 _requestAndroid() async {
    var  msg=await PlatformChannel.getMessage();
   print(msg);
   }
class PlatformChannel {
  static const platform = const MethodChannel('samples.flutter.io/battery');

  static Future<String> getMessage() async {
    String message = await platform.invokeMethod('getBatteryLevel').toString();
    print("PlatformChannel=" + message);
    return message;
  }
}

7.遇到问题:

  1. 新增文件后,提示新增成功了,但是存储卡找不到文件,增删查改都可以,但是就是在内存卡里看不到。
  2. sdk和开源不匹配,修改sdk版本方法。
  3. 权限申请拒绝后,再次打开不再弹窗。
  4. setState()使用场景,有些时候不起作用:使用StatefulBuilder。
    StatefulBuilder(
    builder: (BuildContext context, StateSetter setState) {
    return ;
    },
    ),
  5. gridview数据不刷新问题,修改了数据后死活不刷新。
    解决方案:gridview控件里面添加key: UniqueKey()。
    6.嵌入webview_flutter插件后使用报错,报错内容:Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null)
    原因:原生Android交互,Android端和次功能有冲突,把Android端方法注释(日后找到方法再来更新)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容