snackbar가 flutter에 내장되어있는 반면 toast는 없기 때문에 외부 라이브러리를 사용해야 한다.
설치는 공식 문서를 참고하고, 바로 활용해봅시다.
import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'MyHomePage.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: Home()
);
}
}
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Toast!"),
centerTitle: true,
),
// context 관련 문제를 피하기 위해 분리해주도록 합시다.
body: ToastTest());
}
}
class ToastTest extends StatelessWidget {
void showToast() {
Fluttertoast.showToast(
msg: "This is Long Toast",
// gravity는 toast가 어디에 뜰 것인지를 설정합니다. 기본값은 Bottom입니다.
gravity: ToastGravity.BOTTOM,
backgroundColor: Colors.grey,
fontSize: 20.0,
textColor: Colors.black,
// toastLength는 toast가 뜨는 시간을 설정하는 겁니다. short, long이 존재합니다.
toastLength: Toast.LENGTH_SHORT);
}
@override
Widget build(BuildContext context) {
return Center(
child: FlatButton(
onPressed: () {
showToast();
},
child: Text("Toast!!!"),
color: Colors.lightBlue));
}
}
'📱 Mobile > 📱 (old) Flutter v 1.0' 카테고리의 다른 글
컬렉션(Collection)과 제네릭(Generic) (0) | 2020.05.15 |
---|---|
Navigation and routing (0) | 2020.05.15 |
BuildContext, builder를 이해하기 위한 SnackBar (0) | 2020.05.15 |
Widget 정리 (상시 업데이트) (0) | 2020.05.15 |
속성 정의가 길어질 때 Widget 분리 (0) | 2020.05.14 |