Showing
1 changed file
with
23 additions
and
24 deletions
@@ -37,7 +37,7 @@ | @@ -37,7 +37,7 @@ | ||
37 | - [Đổi Theme](#đổi-theme) | 37 | - [Đổi Theme](#đổi-theme) |
38 | - [GetConnect](#getconnect) | 38 | - [GetConnect](#getconnect) |
39 | - [Cấu hình mặc định](#cấu-hình-mặc-định) | 39 | - [Cấu hình mặc định](#cấu-hình-mặc-định) |
40 | - - [Tùy chỉnh](#tùy-chỉnh) | 40 | + - [Cấu hình tùy chỉnh](#cấu-hình-tùy-chỉnh) |
41 | - [GetPage Middleware](#getpage-middleware) | 41 | - [GetPage Middleware](#getpage-middleware) |
42 | - [Ưu tiên](#ưu-tiên) | 42 | - [Ưu tiên](#ưu-tiên) |
43 | - [Chuyển hướng](#chuyển-hướng) | 43 | - [Chuyển hướng](#chuyển-hướng) |
@@ -507,7 +507,7 @@ class HomeProvider extends GetConnect { | @@ -507,7 +507,7 @@ class HomeProvider extends GetConnect { | ||
507 | 507 | ||
508 | GetPage hiện có thuộc tính mới lấy danh sách GetMiddleWare và chạy chúng theo thứ tự cụ thể. | 508 | GetPage hiện có thuộc tính mới lấy danh sách GetMiddleWare và chạy chúng theo thứ tự cụ thể. |
509 | 509 | ||
510 | -**Chí ú**: Khi GetPage có Middleware (phần trung gian), tất cả các children của trang này sẽ tự động có cùng middlewares. | 510 | +**Chú ý**: Khi GetPage có Middleware (phần trung gian), tất cả các children của trang này sẽ tự động có cùng middlewares. |
511 | 511 | ||
512 | ### Ưu tiên | 512 | ### Ưu tiên |
513 | 513 | ||
@@ -549,7 +549,7 @@ GetPage onPageCalled(GetPage page) { | @@ -549,7 +549,7 @@ GetPage onPageCalled(GetPage page) { | ||
549 | 549 | ||
550 | ### OnBindingsStart | 550 | ### OnBindingsStart |
551 | 551 | ||
552 | -Function này sẽ khởi động trước khi Bindinds diễn ra và bạn có thể thay đổi Bindings cho trang này. | 552 | +Hàm này sẽ khởi động ngay trước khi Bindings diễn ra và bạn có thể thay đổi Bindings cho trang này. |
553 | 553 | ||
554 | ```dart | 554 | ```dart |
555 | List<Bindings> onBindingsStart(List<Bindings> bindings) { | 555 | List<Bindings> onBindingsStart(List<Bindings> bindings) { |
@@ -563,7 +563,7 @@ List<Bindings> onBindingsStart(List<Bindings> bindings) { | @@ -563,7 +563,7 @@ List<Bindings> onBindingsStart(List<Bindings> bindings) { | ||
563 | 563 | ||
564 | ### OnPageBuildStart | 564 | ### OnPageBuildStart |
565 | 565 | ||
566 | -Function này sẽ khởi động sau khi Bindings diễn ra. Ở đây, bạn có thể làm thứ gì đó sau khi bạn tạo Bindings và trước khi tạo trange widget. | 566 | +Hàm này sẽ khởi động ngay sau khi Bindings diễn ra. Ở đây, bạn có thể làm thứ gì đó sau khi bạn tạo Bindings và trước khi tạo trang widget. |
567 | 567 | ||
568 | ```dart | 568 | ```dart |
569 | GetPageBuilder onPageBuildStart(GetPageBuilder page) { | 569 | GetPageBuilder onPageBuildStart(GetPageBuilder page) { |
@@ -574,7 +574,7 @@ GetPageBuilder onPageBuildStart(GetPageBuilder page) { | @@ -574,7 +574,7 @@ GetPageBuilder onPageBuildStart(GetPageBuilder page) { | ||
574 | 574 | ||
575 | ### OnPageBuilt | 575 | ### OnPageBuilt |
576 | 576 | ||
577 | -Function này sẽ khởi động ngay sau khi GetPage.page được gọi và sẽ cho bạn kết quả của function và lấy widget được hiển thị. | 577 | +Hàm này sẽ khởi động ngay sau khi GetPage.page được gọi và sẽ cho bạn kết quả của hàm và lấy widget được hiển thị. |
578 | 578 | ||
579 | ### OnPageDispose | 579 | ### OnPageDispose |
580 | 580 | ||
@@ -723,7 +723,7 @@ MaterialApp( | @@ -723,7 +723,7 @@ MaterialApp( | ||
723 | ); | 723 | ); |
724 | ``` | 724 | ``` |
725 | 725 | ||
726 | -You will also be able to use your own Middleware within `GetObserver`, this will not influence anything. | 726 | +Bạn cũng sẽ có thể dùng Middleware của riêng bạn trong `GetObserver`, điều này không ảnh hưởng những thứ khác. |
727 | 727 | ||
728 | ```dart | 728 | ```dart |
729 | MaterialApp( | 729 | MaterialApp( |
@@ -734,8 +734,8 @@ MaterialApp( | @@ -734,8 +734,8 @@ MaterialApp( | ||
734 | ); | 734 | ); |
735 | ``` | 735 | ``` |
736 | 736 | ||
737 | -You can create _Global Settings_ for `Get`. Just add `Get.config` to your code before pushing any route. | ||
738 | -Or do it directly in your `GetMaterialApp` | 737 | +Bạn có thể tạo _Global Settings_ cho `Get`. Chỉ cần thêm `Get.config` vào code của bạn trước khi đẩy (push) bất cứ route nào. |
738 | +Hoặc làm nó trực tiếp trong `GetMaterialApp` của bạn. | ||
739 | 739 | ||
740 | ```dart | 740 | ```dart |
741 | GetMaterialApp( | 741 | GetMaterialApp( |
@@ -754,9 +754,8 @@ Get.config( | @@ -754,9 +754,8 @@ Get.config( | ||
754 | ) | 754 | ) |
755 | ``` | 755 | ``` |
756 | 756 | ||
757 | -You can optionally redirect all the logging messages from `Get`. | ||
758 | -If you want to use your own, favourite logging package, | ||
759 | -and want to capture the logs there: | 757 | +Bạn có thể tự chọn chuyển hướng tất cả logging messages từ `Get`. |
758 | +Nếu bạn muốn sử dụng logging package ưa thích của riêng bạn, và muốn chụp lại những logs đó: | ||
760 | 759 | ||
761 | ```dart | 760 | ```dart |
762 | GetMaterialApp( | 761 | GetMaterialApp( |
@@ -775,7 +774,7 @@ void localLogWriter(String text, {bool isError = false}) { | @@ -775,7 +774,7 @@ void localLogWriter(String text, {bool isError = false}) { | ||
775 | ### Local State Widgets | 774 | ### Local State Widgets |
776 | 775 | ||
777 | Các Widget này cho phép bạn quản lý một giá trị duy nhất và giữ trạng thái tạm thời và cục bộ. | 776 | Các Widget này cho phép bạn quản lý một giá trị duy nhất và giữ trạng thái tạm thời và cục bộ. |
778 | -Chúng tôi có các hướng đi cho Reactive và Simple. | 777 | +Chúng ta có các hướng đi cho Reactive và Simple. |
779 | Ví dụ: bạn có thể sử dụng chúng để chuyển đổi văn bản tối nghĩa trong một `TextField`, có thể tạo một widget | 778 | Ví dụ: bạn có thể sử dụng chúng để chuyển đổi văn bản tối nghĩa trong một `TextField`, có thể tạo một widget |
780 | Expandable Panel tùy chỉnh hoặc có thể sửa đổi chỉ mục hiện tại trong `BottomNavigationBar` trong khi thay đổi nội dung | 779 | Expandable Panel tùy chỉnh hoặc có thể sửa đổi chỉ mục hiện tại trong `BottomNavigationBar` trong khi thay đổi nội dung |
781 | bên trong một `Scaffold`. | 780 | bên trong một `Scaffold`. |
@@ -799,7 +798,7 @@ ValueBuilder<bool>( | @@ -799,7 +798,7 @@ ValueBuilder<bool>( | ||
799 | 798 | ||
800 | #### ObxValue | 799 | #### ObxValue |
801 | 800 | ||
802 | -Tương tự như [`ValueBuilder`] (# valuebuilder), nhưng đây là phiên bản Reactive, bạn kèm một lệnh Rx (nhớ cái .obs không?) và nó cập nhật tự động ... hay chưa? | 801 | +Tương tự như [`ValueBuilder`](#valuebuilder), nhưng đây là phiên bản Reactive, bạn kèm một lệnh Rx (nhớ cái .obs không?) và nó cập nhật tự động ... hay chưa? |
803 | 802 | ||
804 | ```dart | 803 | ```dart |
805 | ObxValue((data) => Switch( | 804 | ObxValue((data) => Switch( |
@@ -823,7 +822,7 @@ var message = 'Xin Chào'.obs; | @@ -823,7 +822,7 @@ var message = 'Xin Chào'.obs; | ||
823 | print( 'Message "$message" has Type ${message.runtimeType}'); | 822 | print( 'Message "$message" has Type ${message.runtimeType}'); |
824 | ``` | 823 | ``` |
825 | 824 | ||
826 | -Ngay cả khi `message` _prints_ giá trị String, Loại là ** RxString **! | 825 | +Ngay cả khi `message` _prints_ giá trị String, thì kiểu của nó lại là ** RxString **! |
827 | 826 | ||
828 | Vì vậy, bạn không thể thực hiện `message.substring (0, 4) '. Bạn phải truy cập vào `value`thực bên trong _observable_: Cách được sử dụng nhiều nhất là`.value`, nhưng, bạn có biết rằng bạn cũng có thể sử dụng ... | 827 | Vì vậy, bạn không thể thực hiện `message.substring (0, 4) '. Bạn phải truy cập vào `value`thực bên trong _observable_: Cách được sử dụng nhiều nhất là`.value`, nhưng, bạn có biết rằng bạn cũng có thể sử dụng ... |
829 | 828 | ||
@@ -917,20 +916,20 @@ print( user ); | @@ -917,20 +916,20 @@ print( user ); | ||
917 | ## StateMixin | 916 | ## StateMixin |
918 | 917 | ||
919 | Một cách khác để xử lý trạng thái `UI` của bạn là sử dụng`StateMixin <T>`. | 918 | Một cách khác để xử lý trạng thái `UI` của bạn là sử dụng`StateMixin <T>`. |
920 | -Để triển khai nó, hãy sử dụng dấu `with` để thêm`StateMixin <T>` bộ điều khiển của bạn cho phép tích hợp kèm mô hình T. | 919 | +Để triển khai nó, hãy sử dụng dấu `with` để thêm`StateMixin <T>` vào bộ điều khiển (controller) của bạn cho phép tích hợp kèm mô hình T. |
921 | 920 | ||
922 | ```dart | 921 | ```dart |
923 | class Controller extends GetController with StateMixin<User>{} | 922 | class Controller extends GetController with StateMixin<User>{} |
924 | ``` | 923 | ``` |
925 | 924 | ||
926 | -Phương thức `change ()` thay đổi trạng thái bất cứ khi nào chúng ta muốn. | 925 | +Phương thức `change()` thay đổi trạng thái bất cứ khi nào chúng ta muốn. |
927 | Chỉ cần chuyển dữ liệu và trạng thái theo cách này: | 926 | Chỉ cần chuyển dữ liệu và trạng thái theo cách này: |
928 | 927 | ||
929 | ```dart | 928 | ```dart |
930 | change(data, status: RxStatus.success()); | 929 | change(data, status: RxStatus.success()); |
931 | ``` | 930 | ``` |
932 | 931 | ||
933 | -RxStatus allow these status: | 932 | +RxStatus cho phép những trang thái này: |
934 | 933 | ||
935 | ```dart | 934 | ```dart |
936 | RxStatus.loading(); | 935 | RxStatus.loading(); |
@@ -939,7 +938,7 @@ RxStatus.empty(); | @@ -939,7 +938,7 @@ RxStatus.empty(); | ||
939 | RxStatus.error('message'); | 938 | RxStatus.error('message'); |
940 | ``` | 939 | ``` |
941 | 940 | ||
942 | -To represent it in the UI, use: | 941 | +Để biểu hiện nó trên UI, sử dụng: |
943 | 942 | ||
944 | ```dart | 943 | ```dart |
945 | class OtherClass extends GetView<Controller> { | 944 | class OtherClass extends GetView<Controller> { |
@@ -989,7 +988,7 @@ Là một Widget `const Stateless` có getter` controller` cho một `Controller | @@ -989,7 +988,7 @@ Là một Widget `const Stateless` có getter` controller` cho một `Controller | ||
989 | #### GetResponsiveView | 988 | #### GetResponsiveView |
990 | 989 | ||
991 | Mở rộng tiện ích này để xây dựng chế độ responsive. | 990 | Mở rộng tiện ích này để xây dựng chế độ responsive. |
992 | -Ưidget này chứa thuộc tính `screen` có tất cả | 991 | +Widget này chứa thuộc tính `screen` có tất cả |
993 | thông tin về kích thước và loại màn hình. | 992 | thông tin về kích thước và loại màn hình. |
994 | 993 | ||
995 | ##### Hướng dẫn sử dụng trước khi dùng | 994 | ##### Hướng dẫn sử dụng trước khi dùng |
@@ -998,9 +997,9 @@ Bạn có hai lựa chọn để xây dựng nó. | @@ -998,9 +997,9 @@ Bạn có hai lựa chọn để xây dựng nó. | ||
998 | 997 | ||
999 | - với phương thức `builder` bạn trả về tiện ích con để xây dựng. | 998 | - với phương thức `builder` bạn trả về tiện ích con để xây dựng. |
1000 | - với các phương thức `desktop`,` tablet`, `phone`,` watch`. cụ thể, các phương thức này sẽ tạo các loại màn hình khớp với ngữ cảnh khi màn hình là [ScreenType.Tablet] thì phương thức `tablet` sẽ được tạo ra và cứ như vậy. | 999 | - với các phương thức `desktop`,` tablet`, `phone`,` watch`. cụ thể, các phương thức này sẽ tạo các loại màn hình khớp với ngữ cảnh khi màn hình là [ScreenType.Tablet] thì phương thức `tablet` sẽ được tạo ra và cứ như vậy. |
1001 | - **Chí ú:** Nếu bạn dùng cái này, nhớ đặt `alwaysUseBuilder` thành `false` | 1000 | + **Chú ý:** Nếu bạn dùng cái này, nhớ đặt `alwaysUseBuilder` thành `false` |
1002 | 1001 | ||
1003 | -Với `settings` property bạn có thể đặt chiều dài tối thiểu cho các loại màn hình. | 1002 | +Với thuộc tính `settings` bạn có thể đặt chiều dài tối thiểu cho các loại màn hình. |
1004 | 1003 | ||
1005 |  | 1004 |  |
1006 | Code to this screen | 1005 | Code to this screen |
@@ -1012,13 +1011,13 @@ Hầu hết mọi người không biết gì về Widget này, hoặc hoàn toà | @@ -1012,13 +1011,13 @@ Hầu hết mọi người không biết gì về Widget này, hoặc hoàn toà | ||
1012 | Trường hợp sử dụng rất hiếm, nhưng rất cụ thể: Nó `caches` một Bộ điều khiển. | 1011 | Trường hợp sử dụng rất hiếm, nhưng rất cụ thể: Nó `caches` một Bộ điều khiển. |
1013 | Bởi vì _cache_ không thể là một `const Stateless`. | 1012 | Bởi vì _cache_ không thể là một `const Stateless`. |
1014 | 1013 | ||
1015 | -> So, when do you need to "cache" a Controller? | 1014 | +> Vậy khi nào mình cần cache bộ điều khiển (controller)? |
1016 | 1015 | ||
1017 | Nếu sử dụng, bạn sẽ dùng cái này **GetX**: `Get.create()`. | 1016 | Nếu sử dụng, bạn sẽ dùng cái này **GetX**: `Get.create()`. |
1018 | 1017 | ||
1019 | `Get.create(()=>Controller())` sẽ tạo một `Controller` với mỗi lần gọi `Get.find<Controller>()`, | 1018 | `Get.create(()=>Controller())` sẽ tạo một `Controller` với mỗi lần gọi `Get.find<Controller>()`, |
1020 | 1019 | ||
1021 | -Đó là nơi mà `` GetWidget` tỏa sáng ... chẳng hạn như bạn có thể sử dụng nó, để giữ một danh sách các mục Todo. Vì vậy, nếu widget được "xây dựng lại", nó sẽ giữ nguyên phiên bản controller. | 1020 | +Đó là nơi mà `GetWidget` tỏa sáng ... chẳng hạn như bạn có thể sử dụng nó, để giữ một danh sách các mục Todo. Vì vậy, nếu widget được "xây dựng lại", nó sẽ giữ nguyên phiên bản controller. |
1022 | 1021 | ||
1023 | #### GetxService | 1022 | #### GetxService |
1024 | 1023 | ||
@@ -1066,7 +1065,7 @@ class SettingsService extends GetxService { | @@ -1066,7 +1065,7 @@ class SettingsService extends GetxService { | ||
1066 | 1065 | ||
1067 | ``` | 1066 | ``` |
1068 | 1067 | ||
1069 | -Cách duy nhất để thực sự xóa một `GetxService`, là với`Get.reset ()`giống như cách thức "Khởi động nóng" ứng dụng của bạn. Vì vậy, hãy nhớ rằng, nếu bạn cần sự tồn tại tuyệt đối của một class trong vòng đời tồn tại của nó trong ứng dụng của bạn, hãy sử dụng `GetxService`. | 1068 | +Cách duy nhất để thực sự xóa một `GetxService`, là với `Get.reset ()` giống như cách thức "Khởi động nóng" ứng dụng của bạn. Vì vậy, hãy nhớ rằng, nếu bạn cần sự tồn tại tuyệt đối của một class trong vòng đời tồn tại của nó trong ứng dụng của bạn, hãy sử dụng `GetxService`. |
1070 | 1069 | ||
1071 | # Thay đổi đột phá 2.0 | 1070 | # Thay đổi đột phá 2.0 |
1072 | 1071 |
-
Please register or login to post a comment