1_ExpansionTile
import 'package:flutter/material.dart';
void main() {
runApp(ExpansionTileSample());
}
class ExpansionTileSample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('ExpansionTile'),
),
body: ListView.builder(
itemBuilder: (BuildContext context, int index) => EntryItem(data[index]),
itemCount: data.length,
),
),
);
}
}
class Entry {
Entry(this.title, [this.children = const <Entry>[]]);
final String title;
final List<Entry> children;
}
final List<Entry> data = <Entry>[
Entry('电压',
<Entry>[
Entry('直流',
<Entry>[
Entry('交流'),
Entry('脉冲'),
Entry('越变'),
],
),
Entry('逆变'),
Entry('下冲'),
],
),
Entry('升压',
<Entry>[
Entry('升降压'),
Entry('降压'),
],
),
Entry('水果',
<Entry>[
Entry('苹果'),
Entry('梨子'),
Entry('香蕉',
<Entry>[
Entry('flutter'),
Entry('kotlin'),
Entry('java'),
Entry('c'),
],
),
],
),
];
class EntryItem extends StatelessWidget {
const EntryItem(this.entry);
final Entry entry;
Widget _buildTiles(Entry root) {
if (root.children.isEmpty)
return ListTile(title: Text(root.title));
return ExpansionTile(
key: PageStorageKey<Entry>(root),
title: Text(root.title),
children: root.children.map(_buildTiles).toList(),
);
}
@override
Widget build(BuildContext context) {
return _buildTiles(entry);
}
}
复制代码
2_tooltip
import 'package:flutter/material.dart';
void main() => runApp(SnackBarDemo());
class SnackBarDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Tooltip Demo'),
),
body: SnackBarPage(),
),
);
}
}
class SnackBarPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Center(
child: RaisedButton(
child: Tooltip(
message: '提示成功',
height: 10.0,
child: Text('data'),
),
onPressed: () {
},
),
);
}
}
复制代码
3_打包
请参考这个视频