-
[Flutter 플러터] 8. 플러터 라이브러리 사용하기Study/Flutter, Dart 2024. 8. 17. 15:27728x90반응형
Flutter의 Callback
import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( appBar: AppBar( backgroundColor: Colors.lightBlue, title: const Text('flutter의 Callback'), ), body: const Body()), ), ); } class Body extends StatelessWidget { const Body({super.key}); @override Widget build(BuildContext context) { return TestWidget(); } } class TestWidget extends StatefulWidget { const TestWidget({super.key}); @override State<TestWidget> createState() => _TestWidgetState(); } class _TestWidgetState extends State<TestWidget> { int value = 0; @override Widget build(BuildContext context) { return Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ Text('Count : $value', style: TextStyle(fontSize: 30),), TestButton(addCounter), ] ); } void addCounter(int addValue) => setState(() => value = addValue + value); } class TestButton extends StatelessWidget { const TestButton(this.callback, {super.key}); final Function(int) callback; @override Widget build(BuildContext context) { return Container( margin: const EdgeInsets.symmetric(vertical: 8), width: double.infinity, child: InkWell( onTap: () => callback.call(1), onDoubleTap: () => callback.call(5), onLongPress: () => callback.call(10), child: Center( child: Container( padding: const EdgeInsets.symmetric(vertical: 4, horizontal: 8), decoration: BoxDecoration(border: Border.all()), child: const Text('Up counter', style: TextStyle(fontSize: 24),))), ), ); } }
반응형Flutter 외부 라이브러리 사용하기
english_words를 사용하여, 랜덤한 글자가 나오게 만들었다.
pubspec.yaml에 붙여넣었다.
import 'package:english_words/english_words.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( appBar: AppBar( backgroundColor: Colors.lightBlue, title: const Text('flutter에서 외부 라이브러리 사용하기'), ), body: const Body()), ), ); } class Body extends StatelessWidget { const Body({super.key}); @override Widget build(BuildContext context) { return RandomWords(); } } class RandomWords extends StatelessWidget { const RandomWords({super.key}); @override Widget build(BuildContext context) { final wordList = generateWordPairs().take(5).toList(); final widgets = wordList .map((word) => Text( word.asCamelCase, style: TextStyle(fontSize: 32), )) .toList(); return Column( children: widgets, ); } }
728x90Flutter 로컬 데이터 사용하기
assets 폴더를 만들고 images 폴더를 만들어 그 안에 apple.jpeg 이미지를 넣었다.
pubspec.yaml에서
assets:
- assets/images 를 넣었다.
import 'package:english_words/english_words.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; const assetImagePath = 'assets/images'; const bannerImage = '$assetImagePath/apple.jpeg'; void main() { runApp( MaterialApp( home: Scaffold( appBar: AppBar( backgroundColor: Colors.lightBlue, title: const Text('flutter에서 로컬 데이터 사용하기'), ), body: const Body()), ), ); } class Body extends StatelessWidget { const Body({super.key}); @override Widget build(BuildContext context) { return Center( child: Image.asset(bannerImage), ); } }
728x90반응형'Study > Flutter, Dart' 카테고리의 다른 글
[Flutter 플러터] 가위바위보 앱 따라 만들기 (1) 2024.09.10 [Flutter 플러터] 9. Flutter에서 화면 이동하기 (2) 2024.08.27 [Flutter 플러터] 7. Flutter의 다양한 입력들 (0) 2024.08.15 [Flutter 플러터] 6. Stateless와 Stateful (0) 2024.08.02 [Flutter 플러터] 5. 위젯 배치해보기 (0) 2024.07.26