반응형
앱 버튼을 탭하면 마치 잉크가 퍼지는 것 같은 효과를 사용한 버튼이 있다.
내가 한 행동을 확실하게 인지시키기에 좋은데, inkwell을 사용하면 이 기능을 구현할 수 있다!
컨테이너처럼 별도의 기능을 제공하지 않는 위젯에 제스쳐 기능을 추가할 때 Inkwell 기능을 사용할 수 있다고 한다:)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
// MyApp 클래스 - title + MyHomePage
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
const title = 'InkWell Demo';
return const MaterialApp(
title: title,
home: MyHomePage(title: title),
);
}
}
// MyHomePage 클래스 - AppBar + MyButton(InkwWell 사용하는 부분!)
class MyHomePage extends StatelessWidget {
final String title;
const MyHomePage({Key? key, required this.title}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(title),
),
body: const Center(
child: MyButton(),
),
);
}
}
// MyButton 클래스
class MyButton extends StatelessWidget {
const MyButton({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
// InkWell로 사용자 지정 플랫 버튼 위젯을 감싸준다.
return InkWell(
// 사용자가 버튼을 클릭하면 스낵바를 보여준다
onTap: () {
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
content: Text('Tap'),
));
},
// 버튼의 모양을 디자인한다
child: const Padding(
padding: EdgeInsets.all(12.0),
child: Text('Flat Button'),
),
);
}
}
|
cs |
참고자료
https://flutter.dev/docs/cookbook/gestures/ripples
반응형
'개발 > Flutter' 카테고리의 다른 글
[Flutter] Dialog에 SingleChildScrollView 사용하기 (0) | 2021.10.25 |
---|---|
[Flutter] 무조건 알아야할 Flutter의 기초 (0) | 2021.10.06 |
[Flutter] 아코디언 리스트 : Expansion Panel (0) | 2021.09.17 |
[Flutter] Getx 라우트 방식 (0) | 2021.09.14 |
[Flutter]이미지 연결이 안되는 현상 (0) | 2021.09.10 |
댓글