【问题标题】:Flutter plugin: detect orientation change in native (android) sideFlutter插件:检测本机(android)端的方向变化
【发布时间】:2019-08-13 09:44:53
【问题描述】:

我正在为 Flutter 编写一个平台视图支持的插件,该插件在渲染期间使用 OpenGL。当方向改变时,我需要更新 EGL 上下文以引用实际的窗口支持的渲染上下文。

但是如何检测方向变化(例如在PlatformView 子类型中)?

在附加到 Application 实例之后,实现的 Application.ActivityLifecycleCallbacks 方法似乎根本没有被调用。

【问题讨论】:

    标签: android flutter android-orientation flutter-plugin


    【解决方案1】:

    您没有通过活动生命周期回调获得方向更改的回调的原因是,在您的清单文件中,您可以看到

    android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
    

    这可以防止您的活动在本机 Android 生命周期的方向更改时重新创建。你应该做的是,使用OrientationBuilder

    例如

    OrientationBuilder(
      builder: (context, orientation) {
        return GridView.count(
          // Create a grid with 2 columns in portrait mode,
          // or 3 columns in landscape mode.
          crossAxisCount: orientation == Orientation.portrait ? 2 : 3,
        );
      },
    );
    

    更多信息请查看https://flutter.dev/docs/cookbook/design/orientation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      相关资源
      最近更新 更多