我喜歡物質圖標。我真的但是,不知何故,我突然對它們感到厭倦。因此,我環顧四周,找到了Icons8的精彩圖標。最重要的是...免費! (請參閱好男孩許可證)。
是的,多麼美好的世界等等,但是,將所有這些討厭的代碼寫入飛鏢常數?決不!
而Fluttericon剛從藍色出來!這為我做了所有骯髒的工作。
我開始在項目中使用此圖書館,它們看起來真的很好。所以我問自己:為什麼不出版供別人享受呢?畢竟,在這過程中,我確實得到了許多人的幫助,他們決定不保留圖標,並幫助他人使用一塊軟件,他們不需要與我或其他任何人分享。
因此,謝謝Icons8和Fluttericon!
(當然,為什麼不:謝謝Microsoft Excel!XD)
我們在這裡。按DART團隊建議,從2.0.0版本開始,Linecons將是無效的安全。
以防萬一您可能感興趣:無效安全。
2.12.0 )const icon = const LineIcon.tablet(); vs final icon = LineIcon.tablet() )values屬性在Linecons類中提供,以訪問IconData作為地圖。即, Icon(LineIcons.values['code']) 。byName Getter訪問與以參數為參數的圖標名稱相關的IconData 。即, Icon(LineIcons.byName('desktop')) 。LineIcon (單數)類是LineIcons (複數)提供的,因此您可以使用LineIcon.tablet()而不是Icon(LineIcons.tablet)來備用一些代碼。LineIcon構造函數參數與Icon相同,因此您可以以相同的方式自定義LineIcon實例。即, Icon(LineIcons.px500, color: Colors.red)等效於LineIcon.px500(color: Colors.red) (或Icon(LineIcons.values['px500'], color: Colors.red) )。在少數情況下,名稱與Icons8中的名稱完全不匹配;即500px變成了px500 。無論如何,應該很容易識別圖標。
請注意:2.0.0及以上版本將是無效的安全
字體(v1.3.0)
從字體到班級
從班級到包裹
想像一下交叉:Windows10風格和令人敬畏的靈感。好吧,別做夢了!您可以為您的Android應用程序選擇許多漂亮的圖標(尚未在iOS中測試,對不起)。我寧願在材料上套裝,並且發現在Icons8中找到的圖標比在材料圖標頁面中更容易。
安裝
在您的pubspec.yaml文件中包含line_icons :
dependencies :
flutter :
sdk : flutter
line_icons : ^2.0.2如果您的IDE不自動執行此操作,請鍵入:
flutter packages get
使用
將包裝在您的flutter文件中導入,並使用Icon獲取實際圖標窗口小部件:
import 'package:line_icons/line_icons.dart' ;
...
Icon _icon = Icon ( LineIcons .code);
...或選擇合適的構造函數:
import 'package:line_icons/line_icon.dart' ;
...
const Icon _icon = const LineIcon . code ();
...或以醜陋的方式; P:
import 'package:line_icons/line_icons.dart' ;
...
Icon _icon = Icon ( LineIcons .values[ 'code' ]);
...甚至是一種奇特的討厭方式:
import 'package:line_icons/line_icons.dart' ;
...
Icon _icon = Icon ( LineIcons . byName ( 'code' ));
...樣本
import 'package:flutter/material.dart' ;
import 'package:line_icons/line_icon.dart' ;
import 'package:line_icons/line_icons.dart' ;
void main () => runApp ( MyApp ());
class MyApp extends StatelessWidget {
@override
Widget build ( BuildContext context) {
return MaterialApp (
theme : ThemeData (
primarySwatch : Colors .blue,
useMaterial3 : true ,
),
home : MyHomePage (title : 'Line Icons Demo Home Page' ),
);
}
}
class MyHomePage extends StatelessWidget {
MyHomePage ({
required this .title,
});
final String title;
@override
Widget build ( BuildContext context) {
return Scaffold (
appBar : AppBar (
title : Text (title),
),
body : Center (
child : Column (
mainAxisSize : MainAxisSize .min,
children : [
Text (
'Awesome Line Icons are great!' ,
style : Theme . of (context).textTheme.headlineMedium,
),
Text (
'Version 2.0.2 constructors are const now!' ,
style : Theme . of (context).textTheme.headlineSmall,
),
SizedBox (
height : 48.0 ,
),
// Using LineIcon (no 's') for concision. It returns an Icon object
const LineIcon . tablet (
size : 48.0 ,
color : Colors .red,
),
Text (
'const LineIcon.tablet(size: 48.0, color: Colors.red,)' ,
),
SizedBox (
height : 24.0 ,
),
// Using LineIcons the standard way: injecting the IconData into the Icon object
const Icon (
LineIcons .desktop,
size : 48.0 ,
color : Colors .blue,
),
Text (
'const Icon(LineIcons.desktop, size: 48.0, color: Colors.blue,)' ,
),
SizedBox (
height : 24.0 ,
),
// Using LineIcons the nasty way: passing the IconData via the values map
Icon (
LineIcons .values[ 'mobilePhone' ],
size : 48.0 ,
color : Colors .amber,
),
Text (
'Icon(LineIcons.values[ ' mobilePhone ' ], size: 48.0, color: Colors.amber,)' ,
),
],
),
),
);
}
}如果您對代碼感興趣(無論如何都可以隨意修改它),可以在這裡找到:https://github.com/galonsos/line_icons