// Copyright 2018, the Flutter project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; void main() { runApp(PlatformView()); } class PlatformView extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Platform View', theme: ThemeData( primarySwatch: Colors.grey, ), home: const MyHomePage(title: 'Platform View'), ); } } class MyHomePage extends StatefulWidget { const MyHomePage({Key key, this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State { static const MethodChannel _methodChannel = MethodChannel('samples.flutter.io/platform_view_swift'); int _counter = 0; void _incrementCounter() { setState(() { _counter++; }); } Future _launchPlatformCount() async { final int platformCounter = await _methodChannel.invokeMethod('switchView', _counter); setState(() { _counter = platformCounter; }); } @override Widget build(BuildContext context) => Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( child: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text( 'Button tapped $_counter time${_counter == 1 ? '' : 's'}.', style: const TextStyle(fontSize: 17.0), ), Padding( padding: const EdgeInsets.all(18.0), child: RaisedButton( child: const Text('Continue in iOS view'), onPressed: _launchPlatformCount), ), ], ), ), ), Container( padding: const EdgeInsets.only(bottom: 15.0, left: 5.0), child: Row( children: [ Image.asset('assets/flutter-mark-square-64.png', scale: 1.5), const Text( 'Flutter', style: TextStyle(fontSize: 30.0), ), ], ), ), ], ), floatingActionButton: FloatingActionButton( onPressed: _incrementCounter, tooltip: 'Increment', child: const Icon(Icons.add), ), ); }