경로 관리
GetMaterialApp(
home: MyHome(),
)
▶ MaterialApp 앞에 "Get"을 추가하여 GetMaterialApp으로 변경
Get.to(NextScreen());
▶ 새 화면으로 이동
Get.toNamed('/details');
▶ 이름이 있는 새 화면으로 이동
Get.back();
▶ snackbars, dialogs, bottomsheets를 닫으려면 Navigator.pop(context)를 썼음
Get.off(NextScreen());
▶ 다음 화면으로 이동. 단, 이전 화면으로 돌아가는 옵션이 없는 경우 (예 : Splash 화면, 로그인 화면 등)
Get.offAll(NextScreen());
▶ 다음 화면으로 이동. 단, 이전 경로를 모두 취소하는 경우 (예 : 장바구니, 투표 및 테스트 등)
번역
Text('title'.tr);
▶ .tr을 붙이면서 Get.locale, Get.fallbackLocale의 현재 값을 사용하여 변환
var products = [];
Text('singularKey'.trPlural('pluralKey', products.length, Args));
▶ 단수 및 복수로 번역 사용
import 'package:get/get.dart';
Map<String, Map<String, String>> get keys => {
'en_US': {
'logged_in': 'logged in as @name with email @email',
},
'es_ES': {
'logged_in': 'iniciado sesión como @name con e-mail @email',
}
};
Text('logged_in'.trParams({
'name': 'Jhon',
'email': 'jhon@example.com'
}));
▶ 매개 변수와 함께 번역 사용
locale
var locale = Locale('en', 'US');
Get.updateLocale(locale);
▶ Get.updateLocale()로 locale 업데이트 시, 번역에서 자동으로 새 locale 사용
return GetMaterialApp(
locale: Get.deviceLocale,
);
▶ Get.deviceLocale 이용해 시스템 locale 가져오기
observables
final name = 'GetX'.obs;
name.value = 'Hey';
▶ .value : 값이 현재 값과 다른 경우에만 스트림 업데이트
name('Hello'); //(1)
name() ; //(2)
▶ (1) Hello 반환. 다음과 같은 접근 방식은 null 허용하지 않음. UI도 rebuild 되지 않음
▶ (2) getter와 같으며, Hello 출력
final flag = false.obs;
flag.toggle();
▶ true/false 사이에서 값 전환
flag.nil();
▶ 값을 null로 설정
final abc = [0,1,2].obs;
print('json: ${jsonEncode(abc)}, type: ${abc.runtimeType}');
//출력 : json:[0,1,2], type:RxList<int>
▶ Json은 모든 Rx 유형에서 지원됨
class User {
String name, last;
int age;
User({this.name, this.last, this.age});
@override
String toString() => '$name $last, $age years old';
}
final user = User(name: 'John', last: 'Doe', age: 33).obs;
user.value.name = 'Roi';
▶ user.value.name = '' 와 같이 내부 변수 변경. 하지만 위젯이 rebuild 되지 않음.
user.refresh();
▶ 사용자 정의 클래스의 경우 refresh()와 같이 변경 사항을 수동으로 알려줘야 함
user.update((value){
value.name='Roi';
});
▶ update() 사용하여 값 변경 가능
pub.dev/packages/get#about-get
'프로그래밍 > Flutter-Dart' 카테고리의 다른 글
[Flutter] Shared preferences (0) | 2021.03.25 |
---|---|
[Flutter] cached_network_image (0) | 2021.03.25 |
[Flutter] get package (1) (0) | 2021.03.24 |
[Flutter] GestureDetector (0) | 2021.03.24 |
[Flutter] Bluetooth (0) | 2021.03.24 |
댓글