Ich liebe materielle Ikonen. Ich mache es wirklich. Aber irgendwie fühlte ich mich plötzlich müde von ihnen. Also sah ich mich um und fand eine wundervolle Reihe von Icons8. Und das Beste von allen ... kostenlos! (Siehe die Good Boy -Lizenz).
Ja, was für eine wundervolle Welt und so weiter, aber all diese bösen Codes in Dart -Konstanten aufschreiben? Auf keinen Fall!
Und Fluttericon kam gerade aus heiterem Himmel! Es machte die gesamte schmutzige Arbeit für mich.
Ich begann diese Bibliothek in meinen Projekten zu verwenden, und sie schienen wirklich nett zu sein. Also habe ich mir gefragt: Warum nicht es für andere veröffentlichen, um es zu genießen? Schließlich wurde ich in all diesem Prozess tatsächlich von vielen Menschen unterstützt, die beschlossen, die Ikonen nicht für sich selbst zu behalten und anderen mit einer Software zu helfen, die sie nicht mit mir oder anderen anderen teilen mussten.
Also, danke Icons8 und Fluttericon!
(Und sicher, warum nicht: Danke Microsoft Excel! XD)
Hier sind wir. Ab Version 2.0.0 werden Lineeicons, wie vom DART-Team vorgeschlagen.
Nur für den Fall, dass Sie interessiert sein könnten: Null-Safety.
2.12.0 )const icon = const LineIcon.tablet(); vs final icon = LineIcon.tablet() )values wird in der LineICons -Klasse bereitgestellt, um als Karte IconData zuzugreifen. Dh Icon(LineIcons.values['code']) .byName Getter ist auch verfügbar, um auf die IconData zuzugreifen, die sich auf den als Parameter übergebenen Symbolnamen bezieht. Dh Icon(LineIcons.byName('desktop')) .LineIcon -Klasse (Singular) wird entlang LineIcons (Plural) zur Verfügung gestellt, sodass Sie einen Code mit LineIcon.tablet() anstelle von Icon(LineIcons.tablet) ersparen können.LineIcon Constructor -Parameter entsprechen den gleichen wie Icon , sodass Sie eine LineIcon -Instanz auf die gleiche Weise anpassen können. IE, Icon(LineIcons.px500, color: Colors.red) entspricht LineIcon.px500(color: Colors.red) (oder Icon(LineIcons.values['px500'], color: Colors.red) ). In einigen Fällen stimmen Namen nicht genau den Icons8 überein. dh 500px wurde stattdessen px500 . Die Symbole sollten sowieso leicht erkannt werden.
Bitte seien Sie bewusst: Version 2.0.0 und höher ist null-safe
Die Schriftart (v1.3.0)
Von der Schrift in die Klasse
Von der Klasse zum Paket
Stellen Sie sich einen Cross-Over: Windows10-Stil und eine großartige Inspiration vor. Hör auf zu träumen! Sie haben viele schöne Symbole zur Auswahl für Ihre Android -App (noch nicht in iOS getestet, sorry). Ich möchte lieber dieses Set über Material, und ich finde das Symbol, das ich in Icons8 suche, viel einfacher als in der Seite mit Materialikonen.
Installation
Geben Sie line_icons in Ihre pubspec.yaml -Datei ein:
dependencies :
flutter :
sdk : flutter
line_icons : ^2.0.2Wenn Ihre IDE es nicht automatisch tut, geben Sie ein:
flutter packages get
Verwendung
Importieren Sie das Paket in Ihre Flutter -Datei und verwenden Sie Icon , um das eigentliche Symbol -Widget zu erhalten:
import 'package:line_icons/line_icons.dart' ;
...
Icon _icon = Icon ( LineIcons .code);
...Oder wählen Sie einen geeigneten Konstruktor:
import 'package:line_icons/line_icon.dart' ;
...
const Icon _icon = const LineIcon . code ();
...Oder gehen Sie den hässlichen Weg; P:
import 'package:line_icons/line_icons.dart' ;
...
Icon _icon = Icon ( LineIcons .values[ 'code' ]);
...Oder sogar einen schicken bösen Weg:
import 'package:line_icons/line_icons.dart' ;
...
Icon _icon = Icon ( LineIcons . byName ( 'code' ));
...Probe
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,)' ,
),
],
),
),
);
}
}Wenn Sie am Code interessiert sind (zögern Sie nicht, ihn zu ändern), Sie können ihn hier finden: https://github.com/galonsos/line_icons