要使用的图标是从服务器端收到的名称,例如“lock”,
如何将“lock”映射到Icons.lock?
Icon(Icons.lock)
我需要创建一个从字符串(名称)到颤动图标常量的映射吗?期待静态方法
Icons.fromName(String name)
这是一个如何操作的示例:)
import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Material App',
home: Scaffold(
appBar: AppBar(
title: const Text('Material App Bar'),
),
body: Center(
child: Icon(IconMapper.fromName('lock')),
),
),
);
}
}
class IconMapper {
static final _iconMap = <String, IconData>{
'lock': Icons.lock,
'alarm': Icons.alarm,
'call': Icons.call,
'camera_alt': Icons.camera_alt,
// Add more icons as needed
};
static IconData fromName(String name) {
return _iconMap[name] ??
Icons.error; // Fallback to 'error' icon if name not found
}
}