Flutter中的Android Toast消息

Flutter 应用程序,用于显示 Android 的 Toast 消息。

flutter_toast

显示Flutter中Toast消息的方法和代码。

要在Flutter中显示Toast消息,我通过Platform Channels从Flutter与原生代码进行通信,并在原生代码中显示Toast消息。

平台通道

Flutter提供的用于在原生代码和Flutter代码之间通信的。

在Flutter中定义通道


    static const platform = const MethodChannel('flutter.toast.message.channel');

在Android中定义通道/处理程序


    MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result ->
          
    }

如上定义平台通道并提供通道名称,
此通道名称在Flutter代码和Android原生代码之间必须相同。

在Flutter中创建类

为了与Android通信,以便显示Toast消息。


    class Toast {
      Toast(String message) {
        _showToast(message);
      }

      static const platform = const MethodChannel('flutter.toast.message.channel');

      Future<Null> _showToast(String message) async {
        // invoke method, provide method name and arguments.
        await platform.invokeMethod('toast', {'message': message});
      }
    }

在Android中处理来自Flutter的方法调用


    class MainActivity : FlutterActivity() {
        companion object {
            const val CHANNEL = "flutter.toast.message.channel"
            const val METHOD_TOAST = "toast"
            const val KEY_MESSAGE = "message"
        }

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            GeneratedPluginRegistrant.registerWith(this)

            // handle method invocation from flutter, and perform action
            MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result ->
                if (call.method == METHOD_TOAST) {
                    val message = call.argument<String>(KEY_MESSAGE)
                    Toast.makeText(this@MainActivity, message, Toast.LENGTH_SHORT).show()
                }
            }
        }
    }

这就是在Flutter中显示Android Toast消息所需的一切。

用法

要从Flutter显示Toast消息,只需调用Toast类并将您的消息作为参数传递,如下所示


    Toast("Hello, I'm Toast from Flutter.");

GitHub

https://github.com/UttamPanchasara/FlutterToast