从名称创建图标的最佳方法是什么?

问题描述 投票:0回答:1

要使用的图标是从服务器端收到的名称,例如“lock”,

如何将“lock”映射到Icons.lock?

 Icon(Icons.lock)

我需要创建一个从字符串(名称)到颤动图标常量的映射吗?期待静态方法

 Icons.fromName(String name)
flutter icons
1个回答
0
投票

这是一个如何操作的示例:)

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
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.