나는 재료 아이콘을 좋아합니다. 나는 정말로한다. 그러나 어쨌든 나는 갑자기 그들에게 피곤하다고 느꼈다. 그래서 나는 주변을 둘러보고 아이콘 8의 멋진 아이콘 세트를 발견했습니다. 그리고 무엇보다도 ... 무료로! (좋은 소년 라이센스 참조).
예, 얼마나 멋진 세상이지만, 그 불쾌한 코드를 다트 상수에 기록합니까? 안 돼요!
그리고 Fluttericon은 방금 파란색에서 나왔습니다! 그것은 나를 위해 모든 더러운 일을 만들었습니다.
나는이 도서관을 내 프로젝트에서 사용하기 시작했고 그들은 정말 멋져 보였다. 그래서 나는 나 자신에게 물었다 : 왜 다른 사람들이 즐길 수 있도록 그것을 출판하지 않습니까? 결국,이 모든 과정에서 나는 아이콘을 스스로 유지하지 않고 다른 사람들과 나 자신과 공유 할 필요가없는 소프트웨어를 도와주는 많은 사람들의 도움을 받았습니다.
따라서 Icons8과 Fluttericon에게 감사합니다!
(그리고 물론, 왜 : Microsoft Excel에게 감사합니다! XD)
여기 우리가 있습니다. 버전 2.0.0에서 시작하여 Lineicons는 DART 팀이 제안한 것처럼 Null-Safe가됩니다.
관심이있는 경우를 대비하여 Null-Safety.
2.12.0 )const icon = const LineIcon.tablet(); vs final icon = LineIcon.tablet() )values 속성은 Lineicons 클래스에서 제공되어 IconData 에 맵으로 액세스합니다. 즉, Icon(LineIcons.values['code']) .byName Getter는 전달 된 아이콘 이름과 관련된 IconData 에 액세스 할 수 있습니다. 즉, Icon(LineIcons.byName('desktop')) .LineIcon (Singular) 클래스는 LineIcons (복수)을 따라 제공되므로 Icon(LineIcons.tablet) 대신 LineIcon.tablet() 사용하여 일부 코드를 절약 할 수 있습니다.LineIcon 생성자 매개 변수는 Icon 과 동일하므로 LineIcon 인스턴스를 동일한 방식으로 사용자 정의 할 수 있습니다. 즉, Icon(LineIcons.px500, color: Colors.red) 은 LineIcon.px500(color: Colors.red) (또는 Icon(LineIcons.values['px500'], color: Colors.red) )과 같습니다. 몇몇 경우, 이름은 아이콘 8의 이름과 정확히 일치하지 않습니다. 즉, 500px 대신 px500 되었습니다. 어쨌든 아이콘을 쉽게 인식해야합니다.
주의하십시오 : 버전 2.0.0 이상은 Null-Safe입니다.
글꼴 (v1.3.0)
글꼴에서 클래스까지
클래스에서 패키지까지
크로스 오버 : Windows10 스타일과 멋진 영감을 상상해보십시오. 글쎄, 꿈을 그만! Android 앱에서 선택할 수있는 아름다운 아이콘이 많이 있습니다 (IOS에서는 아직 테스트되지 않음 죄송합니다). 오히려이 설정을 자료 위에 놓고 싶고 자료 아이콘 페이지보다 아이콘 8에서 찾고있는 아이콘을 훨씬 쉽게 찾을 수 있습니다.
설치
pubspec.yaml 파일에 line_icons 포함 :
dependencies :
flutter :
sdk : flutter
line_icons : ^2.0.2IDE가 자동으로 수행하지 않으면 다음을 입력하십시오.
flutter packages get
사용
플러터 파일에서 패키지를 가져오고 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