Skip to content

Instantly share code, notes, and snippets.

@ha-yi
Created May 30, 2020 07:03
Show Gist options
  • Save ha-yi/f812e33a36de75a5dc3196be227b5d7b to your computer and use it in GitHub Desktop.
Save ha-yi/f812e33a36de75a5dc3196be227b5d7b to your computer and use it in GitHub Desktop.
import 'package:flutter/material.dart';
typedef GetString<T> = String Function(T from);
class MyObject{
String title;
String name;
MyObject(this.title, this.name);
}
extension StringExt on String {
Widget toTextWidget() {
return Text(this);
}
}
extension ListExt on List {
List<Widget> toListTile(GetString titleHolder) {
return this.map((e) => ListTile(title: titleHolder(e).toTextWidget())).toList();
}
}
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child: Column(
children:[
MyObject("Title One", "one"),
MyObject("Title Two", "one"),
MyObject("Title three", "one"),
MyObject("Title four", "one"),
].toListTile((e) => e.title),
),
),
),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment