1
0
mirror of https://github.com/flutter/samples.git synced 2025-11-09 06:18:49 +00:00

Initial Commit for PlaformChannel Sample App (#453)

This commit is contained in:
Ayush Bherwani
2020-06-05 03:24:52 +05:30
committed by GitHub
parent 8fbe1d6366
commit acf700c642
67 changed files with 1805 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
// Copyright 2020 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/material.dart';
import 'package:platform_channels/src/method_channel_demo.dart';
void main() {
runApp(PlatformChannelSample());
}
class PlatformChannelSample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
routes: {
'/methodChannelDemo': (context) => MethodChannelDemo(),
},
title: 'Platform Channel Sample',
home: HomePage(),
);
}
}
class DemoInfo {
final String demoTitle;
final String demoRoute;
DemoInfo(this.demoTitle, this.demoRoute)
: assert(demoTitle != null),
assert(demoRoute != null);
}
List<DemoInfo> demoList = [
DemoInfo(
'MethodChannelDemo',
'/methodChannelDemo',
),
];
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Platform Channel Sample'),
),
body: ListView(
children: demoList.map((demoInfo) => DemoTile(demoInfo)).toList(),
),
);
}
}
/// This widget is responsible for displaying the [ListTile] on [HomePage].
class DemoTile extends StatelessWidget {
final DemoInfo demoInfo;
DemoTile(this.demoInfo);
@override
Widget build(BuildContext context) {
return ListTile(
title: Text(demoInfo.demoTitle),
onTap: () {
Navigator.pushNamed(context, demoInfo.demoRoute);
},
);
}
}