반응형

Flutter 57

[Flutter] 영상관련 기능 정리

void onReversePressed() { } void onPlayPressed() { } void onForwardPressed() { } Play, reverse, forward 버튼 기능 구현 void onReversePressed() { //현재 영상 위치를 알아야한다(videoController!.value.position) final currentPosition = videoController!.value.position; // duration타입 Duration position = Duration(); // position을 기본 0초로 세팅 if(currentPosition.inSeconds > 3) { position = currentPosition - Duration(seconds:..

[Flutter] 중복되는 것 없이 새로운 함수로 Icon받기

Expanded( child: Slider( value: currentPosition.inSeconds.toDouble(), onChanged: (double val) { videoController!.seekTo(Duration(seconds: val.toInt(), ), ); }, max: videoController!.value.duration.inSeconds.toDouble(), min: 0, ), ),​ class _Controls extends StatelessWidget { const _Controls({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Row( children: [ Icon..

[Flutter] 탭제스쳐 동영상 플레이

class HomeScreen extends StatefulWidget { const HomeScreen({Key? key}) : super(key: key); @override State createState() => _HomeScreenState(); } class _HomeScreenState extends State { // 선택한 영상을 여기서 변수로 관리해야지 XFile? video; @override Widget build(BuildContext context) { return Scaffold( body: video == null ? renderEmpty() : renderVideo(), ); } Widget renderVideo() { return Center( child: CustomVi..

[Flutter] 코드정리(코드가 지저분한 것을 인지하자)

class HomeScreen extends StatelessWidget { const HomeScreen({Key? key}) : super(key: key); @override Widget build(BuildContext context) { final textStyle = TextStyle( color: Colors.white, fontSize: 30.0, fontWeight: FontWeight.w300 ); return Scaffold( body: Container( width: MediaQuery.of(context).size.width, decoration: BoxDecoration( gradient: LinearGradient( begin: Alignment., end: Alignment...

[Flutter] 그라데이션이 들어간 배경

return Scaffold( body: Container( width: MediaQuery.of(context).size.width, decoration: BoxDecoration( gradient: LinearGradient( begin: Alignment.topCenter, end: Alignment.bottomCenter, colors: [ Color(0xFF2A3A7C), Color(0xFF000118), ] ) ), BoxDecoration 안에 Gradient, begin은 어디서 부터 시작할지 end는 어디까지 채울 건지 Colors는 여러가지 값을 넣을 수 있는데 들어간 값이 모두 그라데이션으로 들어가게 된다.

[Flutter] 화면 전환 pop (안드로이드 뒤로가기 버튼 막기- willPopScope)

pop을 이용하여 스택에 뒤로가기를 수행할 수 있는데 Pop MaybePop CanPop 그리고 안드로이드 옛날 기기에서 첫화면에서 뒤로가기 버튼을 눌렀을 때 pop이 안되게 해서 앱이 종료가 되는 것을 막는 기능을 수행하는 willPopScope를 알아보자 Pop 스택에서 뒤로 갈 Route가 존재하는 경우 Pop을 통해 이전 스택(Route)로 이동한다. 첫화면에서 버튼을 만들어 Pop을 실행하면 black화면으로 전환된다 (스택에 쌓인 것이 아예 없기 때문에 앱이 아무것도 띄우지 않고 검은 화면을 띄운다) class HomeScreen extends StatelessWidget { const HomeScreen({Key? key}) : super(key: key); @override Widget b..

[Flutter] 화면 전환 push, 스택에서 삭제(pushReplacement(Named), push(Named)AndRemoveUntil)

기본적인 NamedRoute는 https://accompani-i.tistory.com/329 [Flutter] 화면 전환, 데이터 전달3 (Named Route) NamedRoute를 사용하여 RouteTwoScreen->RouteThreeScreen으로 데이터 전달 - main.dart에 routes 설정하기 routes는 key: Value 형태인데 Value값에 builder형태로 들어간다. void main() { runApp( MaterialApp( initialRoute: '/', routes: accompani-i.tistory.com 위 링크에서 학습하고, HomeScreen-RouteOneScreen-RouteTwoScreen-RouteThreeScreen으로 쌓인 스택을 부분적으로 또..

[Flutter] 화면 전환, 데이터 전달3 (Named Route)

NamedRoute를 사용하여 RouteTwoScreen->RouteThreeScreen으로 데이터 전달 - main.dart에 routes 설정하기 routes는 key: Value 형태인데 Value값에 builder형태로 들어간다. void main() { runApp( MaterialApp( initialRoute: '/', routes: { '/': (context) => HomeScreen(), '/one': (context) => RouteOneScreen(), '/two': (context) => RouteTwoScreen(), '/three': (context) => RouteThreeScreen(), }, ) ); } RouteTwoScreen에서 pushNamed를 통해 main.da..

반응형