我想展示社交媒体的图标。
String socialMedia = 'facebook';
然后在我的构建函数中,我想在我的Icon小部件中使用这个变量
Icon(FontAwesomeIcons.socialMedia)
我如何插值这个变量?这可能吗?如果我能像这样使用变量,对我来说就容易多了。因为现在我可以使用变量来相应地更改图标。
xmd2e60i1#
你可以复制粘贴下面运行完整的代码您可以使用包https://pub.dev/packages/icons_helper您可以使用getIconUsingPrefix,对于FontAwesome图标,您可以使用fa.作为字符串前缀代码片段
getIconUsingPrefix
FontAwesome
fa.
Icon(getIconUsingPrefix(name: 'fa.fiveHundredPx'), color: Theme.of(context).backgroundColor, size: 128.0), Icon(getIconUsingPrefix(name: 'fa.facebook'), color: Theme.of(context).backgroundColor, size: 128.0), Icon(getIconUsingPrefix(name: 'add'), color: Theme.of(context).backgroundColor, size: 128.0),
工作演示
全码
import 'package:flutter/material.dart'; import 'package:icons_helper/icons_helper.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, visualDensity: VisualDensity.adaptivePlatformDensity, ), home: MyHomePage(title: 'Flutter Demo Home Page'), ); } } class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { int _counter = 0; void _incrementCounter() { setState(() { _counter++; }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Icon(getIconUsingPrefix(name: 'fa.fiveHundredPx'), color: Theme.of(context).backgroundColor, size: 128.0), Icon(getIconUsingPrefix(name: 'fa.facebook'), color: Theme.of(context).backgroundColor, size: 128.0), Icon(getIconUsingPrefix(name: 'add'), color: Theme.of(context).backgroundColor, size: 128.0), Text( 'You have pushed the button this many times:', ), Text( '$_counter', style: Theme.of(context).textTheme.headline4, ), ], ), ), floatingActionButton: FloatingActionButton( onPressed: _incrementCounter, tooltip: 'Increment', child: Icon(Icons.add), ), ); } }
vh0rcniy2#
接受的答案中建议的库不再受支持,并且与Dart3不兼容。latest font_awsome_flutter documentation包含解决方案并说明了限制...支持专业图标之后,最受欢迎的功能可能是通过名称检索图标的能力。这在以前是不可能的,因为从名称到图标的Map会破坏所有讨论过的优化。请记住,情况仍然如此。由于理论上所有图标都可以被请求,因此没有一个图标可以通过抖动被删除。强烈建议仅将此选项与有限的样式集结合使用,并且使用的样式越少越好...
2条答案
按热度按时间xmd2e60i1#
你可以复制粘贴下面运行完整的代码
您可以使用包https://pub.dev/packages/icons_helper
您可以使用
getIconUsingPrefix
,对于FontAwesome
图标,您可以使用fa.
作为字符串前缀代码片段
工作演示
全码
vh0rcniy2#
接受的答案中建议的库不再受支持,并且与Dart3不兼容。
latest font_awsome_flutter documentation包含解决方案并说明了限制
...支持专业图标之后,最受欢迎的功能可能是通过名称检索图标的能力。这在以前是不可能的,因为从名称到图标的Map会破坏所有讨论过的优化。请记住,情况仍然如此。由于理论上所有图标都可以被请求,因此没有一个图标可以通过抖动被删除。强烈建议仅将此选项与有限的样式集结合使用,并且使用的样式越少越好...