need_resume
Stateful 위젯에서 onResume, onPause, onReady 기능을 구현하기 위한 패키지입니다 (이것은 모든 화면에 적용됩니다).
Need Resume는 Stateful 위젯(모든 화면용)에서 onResume, onPause, onReady 기능을 구현하기 위한 Flutter 패키지입니다.
아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
Need Resume is a package to implement onResume, onPause, onReady functionality on a Stateful widget (this is for every screen).
Replace State<MyWidget> with ResumableState<MyWidget> and then implement the void onResume(), void onPause(), and/or void onReady() abstract method. Replace Navigator.push() or Navigator.pushNamed() with push() or pushNamed()
Add this to your package's pubspec.yaml file:
dependencies:
need_resume: ^1.0.7+1
Basic example:
import 'package:flutter/material.dart';
import 'package:need_resume/need_resume.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(title: 'My Application', home: HomeScreen());
}
}
class HomeScreen extends StatefulWidget {
@override
HomeScreenState createState() => HomeScreenState();
}
class HomeScreenState extends ResumableState<HomeScreen> {
@override
void onReady() {
// Implement your code inside here
print('HomeScreen is ready!');
}
@override
void onResume() {
// Implement your code inside here
print('HomeScreen is resumed!');
}
@override
void onPause() {
// Implement your code inside here
print('HomeScreen is paused!');
}
void goAnotherScreen() {
// Replace Navigator.push() or Navigator.pushNamed() with push() or pushNamed()
push(context, MaterialPageRoute(builder: (context) => AnotherScreen()));
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: ElevatedButton(
child: Text('Go to Another Screen'),
onPressed: () {
goAnotherScreen();
},
),
),
);
}
}
class AnotherScreen extends StatefulWidget {
@override
AnotherScreenState createState() => AnotherScreenState();
}
class AnotherScreenState extends ResumableState<AnotherScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: ElevatedButton(
child: Text('Go Back'),
onPressed: () {
goBack();
},
),
),
);
}
void goBack() {
Navigator.pop(context);
}
}
How about to get data from a screen? Just use resume.data and resume.source:
import 'package:flutter/material.dart';
import 'package:need_resume/need_resume.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(title: 'My Application', home: HomeScreen());
}
}
class HomeScreen extends StatefulWidget {
@override
HomeScreenState createState() => HomeScreenState();
}
class HomeScreenState extends ResumableState<HomeScreen> {
@override
void onResume() {
switch (resume.source) {
case 'another_screen':
print('Data from AnotherScreen: ${resume.data}');
break;
}
}
void goAnotherScreen() {
push(context, MaterialPageRoute(builder: (context) => AnotherScreen()), 'another_screen');
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: ElevatedButton(
child: Text('Go to Another Screen'),
onPressed: () {
goAnotherScreen();
},
),
),
);
}
}
class AnotherScreen extends StatefulWidget {
@override
AnotherScreenState createState() => AnotherScreenState();
}
class AnotherScreenState extends ResumableState<AnotherScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: ElevatedButton(
child: Text('Go Back'),
onPressed: () {
goBack();
},
),
),
);
}
void goBack() {
Navigator.pop(context, 'Hello!');
}
}
의존성 목록 2 개
{"sdk":"flutter"}{"sdk":"flutter"}사용 목적에 따라 검색하고 개발 활동을 비교한 뒤 원본 저장소에서 요구 사항을 확인하세요.
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗