Text, Image 위젯 등 button화 되어있지 않은 위젯들은
onPressed
기능이 없기 때문에 클릭을 할 수 없다.
-> 이를 가능하게 해주는 것이 GestureDetector 이다.
GestureDetector(
child: Text('클릭 하고 싶지만 하지 못함'),
onTap: () {}
),
onTab
메서드를 활용하면 된다.onDoubleTap
, onLongPress
, onScaleStart
등등 있으니 구글링해서 찾아 쓰자GestureDetector(
child: Text('클릭 하고 싶지만 하지 못함'),
onTap: () {
Navigator.push( context,
MaterialPageRoute(builder: (c) => 커스텀위젯())
);
},
),
MaterialPageRoute
를 활용하면 아래에서 위로 페이지가 나온다GestureDetector(
child: Text('클릭 하고 싶지만 하지 못함'),
onTap: () {
Navigator.push( context,
CupertinoPageRoute(builder: (c) => 커스텀위젯())
);
},
),
CupertinoPageRoute
를 쓰면 아이폰처럼 옆에서 나온다.import 'package:flutter/cupertino.dart';
Navigator.push(context,
PageRouteBuilder(
pageBuilder: (c, a1, a2) => Upload(),
transitionsBuilder: (c, a1, a2, child) => FadeTransition(opacity: a1, child: child),
transitionDuration: Duration(milliseconds : 500),
),
)
PageRouteBuilder
를 활용하여 커스텀 애니메이션 효과를 줄 수 있다. context
,FadeTransition
: Fade 효과를 준다.transitionDuration: Duration(milliseconds: 500)
이런걸로 몇 초동안 동작할지 설정 가능SlideTransition
, PositionedTransition
, ScaleTransition
, RotateTransition
등이 있다. 찾아서 쓰자