Flutter开发小技巧

113 阅读1分钟

Flutter 异常情况处理

在开发过程中,我们经常会遇到各种异常或者错误导致页面展示异常的情况。这种情况下合理且优雅的处理这种情况显得非常有必要了

flutter 中如 异步初始法失败 屏幕适配异常 数组越界取值 接口返回数据类型解析失败 使用自定义样式去处理这个问题

在主函数里面自定义

ErrorWidget.builder = (FlutterErrorDetails flutterErrorDetails) {
  return Material(
    child: Center(
      child: Container(),
    ),
  );
};
}

在单独页面设置

  ErrorWidget.builder = (FlutterErrorDetails flutterErrorDetails) {
    print(flutterErrorDetails.toString());
    return Material(
      child: Center(
        child: Container(
          child: Text("错误页面展示"),
        ),
      ),
      // ),
    );
  };

在开发过程中涉及到输入的地方都会设计到键盘的弹出导致页面整体上升的高度然后键盘弹入页面下降从而保持一定的用户体检

一些简答的情况可以通过一下设置去满足我们的开发

1.Scaffod中的esizeToAvoidBottomInset: false,
2.将组件放到SingleScrollerview中

`

1.class _chatAndMapState extends State<chatAndMap>  with WidgetsBindingObserver
2.@override
void didChangeMetrics() {
  super.didChangeMetrics();
  final double keyboardHeight = WidgetsBinding.instance.window.viewInsets.bottom;
  final double viewInsetsBottom = EdgeInsets.fromWindowPadding(
      WidgetsBinding.instance.window.viewInsets,
      WidgetsBinding.instance.window.devicePixelRatio)
      .bottom;
  setState(() {
    keyHeight = viewInsetsBottom;//键盘高度动态刷新页面
  });
}
@override
void dispose() {
  super.dispose();
  WidgetsBinding.instance?.removeObserver(this);
  cimSocket?.disConnect();
}
3.```
void initState() {
  super.initState();
  WidgetsBinding.instance?.addObserver(this);
  }

`