clia_dynamic_icons 0.0.3 clia_dynamic_icons: ^0.0.3 copied to clipboard
Insert Material Icon and FontAwesome icons dynamically in Flutter app when the icons are not known at compile time.
Insert Material Icon and FontAwesome icons dynamically in Flutter app when the icons are not known at compile time.
The version of font_awesome icons is: 6.1.0
Features #
Load an icon by dynamical name, support material icons and Font Awesome icons.
Getting started #
Prerequisites: Flutter 2+.
Usage #
Add clia_dynamic_icons to pubspec.yaml All icons namse should be in the same format you can find on https://api.flutter.dev/flutter/material/Icons-class.html and fontawesome.com (e.g. add)
import 'package:flutter/material.dart';
import 'package:clia_dynamic_icons/clia_dynamic_icons.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Dynamic Icon',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(title: 'Dynamic Icon Example'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
var iconList = [
{
"title":"Help",
"iconName":"help"
},
{
"title":"Search",
"iconName":"search"
},
{
"title":"Account",
"iconName":"account_balance"
},
{
"title":"Add",
"iconName":"add"
},
{
"title":"Alarm",
"iconName":"alarm"
},
{
"title":"Apps",
"iconName":"apps"
},
{
"title":"Bike",
"iconName":"bike_scooter"
},
{
"title":"Call",
"iconName":"call"
},
{
"title":"Camera",
"iconName":"camera_rear"
}
];
return Scaffold(
appBar: AppBar(
title: Text("Dynamic Icons"),
),
body: ListView.builder(
itemCount: iconList.length,
itemBuilder: (ctx,index){
return Card(
child: ListTile(
title: Text(iconList[index]['title']??""),
leading: DynamicIcons.getIconFromName(iconList[index]['iconName']??""),
),
);
}
),
);
}
}