xly library
xly 包默认入口:再导出各子模块与第三方便捷 API。
按需引用示例:
package:xly/xly.dart— 常用全家桶(含 MyPaths / MyUserDataDir*;不含 picker 与大型可选 UI,见下)package:xly/app.dart— MyApp / 路由 / 窗口package:xly/float_panel.dart— MyFloatPanelpackage:xly/paths.dart— 仅路径(Web 目标用此入口选用桩实现)package:xly/picker.dart— MyPicker 系统选文件/夹(须单独 import)package:xly/notify.dart/tray.dart— 通知与托盘package:xly/text_editor.dart/scaffold.dart/selector.dart— 大型 UI(0.45+ 需单独 import)package:xly/smart_dock.dart— MySmartDock(0.45+ 需单独 import)
Classes
- Bindings
-
Bindings should be extended or implemented.
When using
GetMaterialApp, allGetPages and navigation methods (like Get.to()) have abindingproperty that takes an instance of Bindings to manage the dependencies() (via Get.put()) for the Route you are opening. -
BindingsBuilder<
T> - Simplifies Bindings generation from a single callback. To avoid the creation of a custom Binding instance per route.
- CustomDragArea
- CustomTransition
- DisabledStyle
- 禁用样式配置
- Display
- Description of a user display screen.
- DisposableInterface
- DragToMoveArea
- A widget for drag to move window.
- DragToResizeArea
- A widget for drag to resize window.
-
FastList<
T> - FontSizeResolvers
- FormData
- FullLifeCycleController
- GetBar
-
GetBuilder<
T extends GetxController> -
GetBuilderState<
T extends GetxController> - GetConnect
- GetConnectInterface
- GetCupertinoApp
- GetDelegate
- GetHttpClient
- GetInformationParser
- GetInstance
- GetInterface
- GetInterface allows any auxiliary package to be merged into the "Get" class through extensions
- GetLifeCycle
- GetMaterialApp
- GetMaterialController
- GetMicrotask
- GetMiddleware
- The Page Middlewares. The Functions will be called in this order (( redirect -> onPageCalled -> onBindingsStart -> onPageBuildStart -> onPageBuilt -> onPageDispose ))
-
GetModalBottomSheetRoute<
T> - This config enables us to navigate directly to a sub-url
-
GetNotifier<
T> - GetObserver
-
GetPage<
T> -
GetPageRoute<
T> - GetPlatform
- GetQueue
-
GetResponsiveView<
T> -
Extend this widget to build responsive view.
this widget contains the
screenproperty that have all information about the screen size and type. You have two options to build it. 1- withbuildermethod you return the widget to build. 2- with methodsdesktop,tablet,phone,watch. the specific method will be built when the screen type matches the method when the screen is ScreenType.Tablet thetabletmethod will be exuded and so on. Note if you use this method please set the propertyalwaysUseBuilderto false Withsettingsproperty you can set the width limit for the screen types. -
GetResponsiveWidget<
T extends GetLifeCycleBase?> - GetRouterOutlet
- GetSnackBar
- GetSnackBarState
- GetSocket
- GetStorage
- Instantiate GetStorage to access storage driver apis
-
GetStream<
T> - GetStream is the lightest and most performative way of working with events at Dart. You sintaxe is like StreamController, but it works with simple callbacks. In this way, every event calls only one function. There is no buffering, to very low memory consumption. event add will add a object to stream. addError will add a error to stream. listen is a very light StreamSubscription interface. Is possible take the last value with value property.
-
GetStreamTransformation<
T> - GetUtils
-
GetView<
T> -
GetView is a great way of quickly access your Controller
without having to call
Get.find<AwesomeController>()yourself. -
GetWidget<
S extends GetLifeCycleBase?> -
GetWidget is a great way of quickly access your individual Controller
without having to call
Get.find<AwesomeController>()yourself. Get save you controller on cache, so, you can to use Get.create() safely GetWidget is perfect to multiples instance of a same controller. Each GetWidget will have your own controller, and will be call events asonInitandonClosewhen the controller get in/get out on memory. -
GetX<
T extends DisposableInterface> - GetxController
- GetxService
- Unlike GetxController, which serves to control events on each of its pages, GetxService is not automatically disposed (nor can be removed with Get.delete()). It is ideal for situations where, once started, that service will remain in memory, such as Auth control for example. Only way to remove it is Get.reset().
-
GetXState<
T extends DisposableInterface> -
GraphQLResponse<
T> - HeaderValue
- InstanceInfo
-
InternalFinalCallback<
T> -
Special callable class to keep the contract of a regular method, and avoid
overrides if you extend the class that uses it, as Dart has no final
methods.
Used in
DisposableInterfaceto avoid the danger of overriding onStart. -
LightSubscription<
T> - MethodChannelScreenRetriever
- An implementation of ScreenRetrieverPlatform that uses method channels.
- Microtask
- MiddlewareRunner
-
MiniStream<
T> -
MiniSubscription<
T> -
MixinBuilder<
T extends GetxController> - MultipartFile
- MyApp
- MyAutoStart
- 自启动管理类,提供跨平台的开机自启动功能
- MyButton
- 一个灵活的按钮小部件,支持多种形状样式和图标位置
- MyCard
- MyCardList
- MyCardListState
- MyDialog
- MyDialogSheet
- 统一的对话框管理类
- MyDragProtectedArea
- 拖拽保护区域,用于解决子组件拖拽手势与窗口拖拽之间的竞争冲突。
- MyEndOfListWidget
- MyFloatBoxController
- MyFloatPanel
- 全局浮动面板管理器(类似 MyTray.to)
- MyFloatPanelIconBtn
- MyFloatPanelIconBtnCtrl
- MyFloatPanelIconBtnsCtrl
- MyGroupBox
- MyIcon
-
MyList<
T> - MyLoadingDot
- MyMenu
- 菜单管理器 - 负责菜单的显示和生命周期管理
- MyMenuButton
- MyMenuButtonState
- MyMenuDivider
- 菜单分隔线
- MyMenuElement
- 菜单元素基类
- MyMenuItem
- 菜单项
- MyMenuStyle
- MyNotify
- MyNotify 系统通知管理器
- MyNotifyPermissionStatus
- 通知权限 / 展示能力状态。
- MyPaths
- 程序分发根与用户数据目录的统一路径门面。
- MyPlatform
- 平台工具类:平台检测、权限与窗口控制。
-
MyRoute<
T extends GetxController> - MySegmentedControl
- macOS 风格的分段控制栏
-
MyService<
T> - 服务注册类,用于注册GetX服务
- MySpinBox
- 自定义编辑框组件,支持数字输入和增减按钮。
- MySplash
- 启动屏组件
- MyTab
- 单个 Tab 的数据定义
- MyTabController
- Tab 控制器,管理当前选中的 Tab 索引
- MyTabView
- macOS 风格的 Tab 视图组件
- MyToast
- MyToast 提供了一个统一的 Toast 显示组件
- MyTray
- MyTray 托盘管理器
- MyTrayMenuItem
- 托盘菜单项配置类
- MyUrlLauncher
- MyUserDataDirBootstrapResult
- 启动前解析用户数据目录的结果。
- MyUserDataDirSession
- 用户数据目录启动编排(Store + Validator + MyPaths,不依赖系统文件对话框)。
- MyUserDataDirStore
- 将用户选择的数据目录路径保存在系统应用支持目录(bootstrap 指针), 以便下次启动时定位真实数据位置。
- MyUserDataDirValidation
- 用户数据目录校验结果(用于启用/禁用「确定」与提示文案)。
- MyUserDataDirValidator
- 用户数据目录校验与风险提示。
-
Node<
T> - Obx
- The simplest reactive widget in GetX.
- ObxState
-
ObxValue<
T extends RxInterface> - Similar to Obx, but manages a local state. Pass the initial data in constructor. Useful for simple local states, like toggles, visibility, themes, button states, etc. Sample: ObxValue((data) => Switch( value: data.value, onChanged: (flag) => data.value = flag, ), false.obs, ),
- ObxWidget
- The ObxWidget is the base for all GetX reactive widgets
- PageRedirect
- PathDecoded
-
ReadWriteValue<
T> - RebuildFactors
- REdgeInsets
- REdgeInsetsDirectional
-
Response<
T> - ResponsiveScreen
- ResponsiveScreenSettings
-
RouterOutlet<
TDelegate extends RouterDelegate< T> , T extends Object> -
RouterOutletState<
TDelegate extends RouterDelegate< T> , T extends Object> - Routing
- RPadding
- RSizedBox
-
Rx<
T> -
Foundation class used for custom
Typesoutside the common native Dart types. For example, any custom "Model" class, like User().obs will useRxas wrapper. - RxBool
- RxController
- RxDouble
- RxInt
-
RxInterface<
T> -
This class is the foundation for all reactive (Rx) classes that makes Get
so powerful.
This interface is the contract that
_RxImpl]<T>uses in all it's subclass. -
RxList<
E> -
Create a list similar to
List<T> -
RxMap<
K, V> -
Rxn<
T> - RxnBool
- RxnDouble
- RxnInt
- RxnNum
-
RxNotifier<
T> - RxnString
-
Rx class for
StringType. - RxNum
-
RxSet<
E> - RxStatus
- RxString
-
Rx class for
StringType. - ScreenListener
- Interface for listening to screen events.
- ScreenRetriever
- ScreenRetrieverPlatform
- ScreenUtil
- ScreenUtilInit
- SimpleBuilder
- SimpleBuilderState
- SnackbarController
-
SuperController<
T> - Translations
- TrustedCertificate
-
Value<
T> -
ValueBuilder<
T> - Manages a local state like ObxValue, but uses a callback instead of a Rx value.
-
ValueBuilderState<
T> -
ValueStorage<
T> - VirtualWindowFrame
- VoidCallbackIntent
- WindowCaption
- A widget to simulate the title bar of windows 11.
- WindowCaptionButton
- WindowCaptionButtonIcon
- WindowListener
- WindowManager
- WindowOptions
- WindowOptions
- WindowSettings
- Worker
- Workers
- XlyFocusController
Enums
- DeviceType
- DisabledStyleType
- 禁用样式类型
- DockSide
- DockType
- HorizontalExpandMode
- 上下停靠时的展开方向
- MyButtonShape
- 按钮形状枚举
- MyDialogChosen
- MyIconPosition
- 图标位置枚举
- MyLoadingDotAnimation
- 预设动画类型
- MyMenuPopStyle
- 菜单弹出动画样式
- MyNotifyFallbackPolicy
- 系统通知被平台策略静默时的应用内兜底策略。
- MyNotifyType
- 通知类型枚举
- MyNotifyWindowsFocusAssistMode
- Windows 专注助手 / 勿扰模式状态。
- MyTabBarFit
- Tab 栏水平布局模式
- MyTabPosition
- Tab 栏位置枚举
- PanelShape
- PanelState
- PopMode
- Enables the user to customize the intended pop behavior
- PreventDuplicateHandlingMode
- Enables the user to customize the behavior when pushing multiple routes that shouldn't be duplicates
- ResizeEdge
- RowStyle
- ScreenType
- SectionBorderStyle
- SmartManagement
- GetX by default disposes unused controllers from memory, Through different behaviors. SmartManagement.full SmartManagement.full is the default one. Dispose classes that are not being used and were not set to be permanent. In the majority of the cases you will want to keep this config untouched. If you new to GetX then don't change this. SmartManagement.onlyBuilder only controllers started in init: or loaded into a Binding with Get.lazyPut() will be disposed. If you use Get.put() or Get.putAsync() or any other approach, SmartManagement will not have permissions to exclude this dependency. With the default behavior, even widgets instantiated with "Get.put" will be removed, unlike SmartManagement.onlyBuilders. SmartManagement.keepFactoryJust like SmartManagement.full, it will remove it's dependencies when it's not being used anymore. However, it will keep their factory, which means it will recreate the dependency if you need that instance again.
- SnackbarStatus
- Indicates Status of snackbar SnackbarStatus.OPEN Snack is fully open, SnackbarStatus.CLOSED Snackbar has closed, SnackbarStatus.OPENING Starts with the opening animation and ends with the full snackbar display, SnackbarStatus.CLOSING Starts with the closing animation and ends with the full snackbar dispose
- SnackPosition
- Indicates if snack is going to start at the TOP or at the BOTTOM
- SnackStyle
- Indicates if snack will be attached to the edge of the screen or not
- SpinnerMessagePosition
- 定义文本相对于加载动画的位置
- TitleBarStyle
- ToastPosition
- Toast显示位置枚举
- Transition
- WindowCorner
- 窗口角落位置枚举
- WindowEdge
- 窗口边缘位置枚举
Mixins
- FullLifeCycleMixin
- GetLifeCycleBase
- The GetLifeCycle
- GetResponsiveMixin
- GetSingleTickerProviderStateMixin
-
Used like
SingleTickerProviderMixinbut only with Get Controllers. Simplifies AnimationController creation inside GetxController. -
GetStateUpdaterMixin<
T extends StatefulWidget> -
Complies with
GetStateUpdater - GetTickerProviderStateMixin
-
Used like
TickerProviderMixinbut only with Get Controllers. Simplifies multiple AnimationController creation inside GetxController. - GetxServiceMixin
- Allow track difference between GetxServices and GetxControllers
-
NotifyManager<
T> -
PageRouteReportMixin<
T> -
RxObjectMixin<
T> -
global object that registers against
GetXandObx, and allows the reactivity of thoseWidgetsand Rx values. - ScrollMixin
- SingleGetTickerProviderMixin
-
Used like
SingleTickerProviderMixinbut only with Get Controllers. Simplifies AnimationController creation inside GetxController. -
StateMixin<
T> - SU
Extensions
- BoolExtension on bool
- BorderRadiusExtension on BorderRadius
- BoxConstraintsExtension on BoxConstraints
- ContextExtensionss on BuildContext
- Data on T
- DoubleExtension on double
- EdgeInsetsExtension on EdgeInsets
- ExtensionBottomSheet on GetInterface
- ExtensionDialog on GetInterface
- ExtensionSnackbar on GetInterface
-
FirstWhereExt
on List<
T> - GetDurationUtils on Duration
- Duration utilities.
- GetDynamicUtils on dynamic
- GetNumUtils on num
- GetResetExt on GetInterface
- GetStringUtils on String
- Inst on GetInterface
- IntExtension on int
-
IterableExtensions
on Iterable<
T> -
ListExtension
on List<
E> - LocalesIntl on GetInterface
- LoopEventsExt on GetInterface
-
MapExtension
on Map<
K, V> - OverlayExt on GetInterface
-
PagesListExt
on List<
GetPage> - Precision on double
- RadiusExtension on Radius
- ReactiveT on T
- RightClickMenuExtension on Widget
-
RxBoolExt
on Rx<
bool> -
RxDoubleExt
on Rx<
double> -
RxIntExt
on Rx<
int> -
RxnBoolExt
on Rx<
bool?> -
RxnDoubleExt
on Rx<
double?> -
RxnIntExt
on Rx<
int?> -
RxnNumExt
on Rx<
T?> -
RxnStringExt
on Rx<
String?> -
RxNumExt
on Rx<
T> -
RxStringExt
on Rx<
String> - RxT on T
-
SetExtension
on Set<
E> - SizeExtension on num
-
StateExt
on StateMixin<
T> - StringExtension on String
- Trans on String
- WidgetMarginX on Widget
- Add margin property to widget
- WidgetPaddingX on Widget
- add Padding Property to widget
- WidgetSliverBoxX on Widget
- Allows you to insert widgets inside a CustomScrollView
- XlyFocusableExtension on Widget
Constants
- kWindowCaptionHeight → const double
- kWindowEventBlur → const String
- kWindowEventClose → const String
- kWindowEventDocked → const String
- kWindowEventEnterFullScreen → const String
- kWindowEventFocus → const String
- kWindowEventLeaveFullScreen → const String
- kWindowEventMaximize → const String
- kWindowEventMinimize → const String
- kWindowEventMove → const String
- kWindowEventMoved → const String
- kWindowEventResize → const String
- kWindowEventResized → const String
- kWindowEventRestore → const String
- kWindowEventUndocked → const String
- kWindowEventUnmaximize → const String
-
rtlLanguages
→ const List<
String>
Properties
- Get → _GetImpl
-
final
-
It replaces the Flutter Navigator, but needs no context.
You can to use navigator.push(YourRoute()) rather
Navigator.push(context, YourRoute());
no setter
- screenRetriever → ScreenRetriever
-
final
- windowManager → WindowManager
-
final
Functions
-
ambiguate<
T> (T? value) → T? -
bodyBytesToString(
Stream< List< bodyBytes, Map<int> >String, String> headers) → Future<String> -
calcWindowPosition(
Size windowSize, Alignment alignment) → Future< Offset> -
debounce<
T> (RxInterface< T> listener, WorkerCallback<T> callback, {Duration? time, Function? onError, void onDone()?, bool? cancelOnError}) → Worker -
debounce is similar to interval, but sends the last value.
Useful for Anti DDos, every time the user stops typing for 1 second,
for instance.
When
listeneremits the last "value", whentimehits, it callscallbackwith the last "value" emitted. -
defaultLogWriterCallback(
String value, {bool isError = false}) → void - default logger from GetX
-
ever<
T> (RxInterface< T> listener, WorkerCallback<T> callback, {dynamic condition = true, Function? onError, void onDone()?, bool? cancelOnError}) → Worker -
Called every time
listenerchanges. As long as theconditionreturns true. -
everAll(
List< RxInterface> listeners, WorkerCallback callback, {dynamic condition = true, Function? onError, void onDone()?, bool? cancelOnError}) → Worker -
Similar to ever, but takes a list of
listeners, the condition for thecallbackis common to alllisteners, and thecallbackis executed to each one of them. The Worker is common to all, soworker.dispose()will cancel all streams. -
goToPage(
String routeName, {dynamic arguments, bool preventDuplicates = true, Map< String, String> ? parameters}) → void - 封装 Get.toNamed 的导航函数
-
interval<
T> (RxInterface< T> listener, WorkerCallback<T> callback, {Duration time = const Duration(seconds: 1), dynamic condition = true, Function? onError, void onDone()?, bool? cancelOnError}) → Worker -
Ignore all changes in
listenerduringtime(1 sec by default) or untilconditionis met (can be a bool expression or abool Function()), It brings the 1st "value" since the period of time, so if you click a counter button 3 times in 1 sec, it will show you "1" (after 1 sec of the first press) click counter 3 times in 1 sec, it will show you "4" (after 1 sec) click counter 2 times in 1 sec, it will show you "7" (after 1 sec). -
once<
T> (RxInterface< T> listener, WorkerCallback<T> callback, {dynamic condition = true, Function? onError, void onDone()?, bool? cancelOnError}) → Worker -
once()will execute only 1 time whenconditionis met and cancel the subscription to thelistenerstream right after that.conditiondefines whencallbackis called, and can be a bool or abool Function(). -
VirtualWindowFrameInit(
) → TransitionBuilder
Typedefs
-
AddSubscription<
T> = FutureOr< void> Function(LightSubscription<T> subs) -
AsyncInstanceBuilderCallback<
S> = Future< S> Function() - BindingBuilderCallback = void Function()
- Condition = bool Function()
-
Decoder<
T> = T Function(dynamic data) - FontSizeResolver = double Function(num fontSize, ScreenUtil instance)
-
GetControllerBuilder<
T extends DisposableInterface> = Widget Function(T controller) - GetPageBuilder = Widget Function()
-
GetXControllerBuilder<
T extends DisposableInterface> = Widget Function(T controller) -
InjectorBuilderCallback<
S> = S Function(GetInstance) -
InstanceBuilderCallback<
S> = S Function() - KeyCallback = dynamic Function(String)
- LoadingMessageUpdater = void Function(String message)
- 加载消息更新回调函数类型
- LogWriterCallback = void Function(String text, {bool isError})
- VoidCallback from logs
-
NotifierBuilder<
T> = Widget Function(T state) - OnTap = void Function(GetSnackBar snack)
- PrintFunctionCallback = void Function(String prefix, dynamic value, String info, {bool? isError})
- Progress = dynamic Function(double percent)
- RebuildFactor = bool Function(MediaQueryData old, MediaQueryData data)
-
RemoveSubscription<
T> = FutureOr< bool?> Function(LightSubscription<T> subs) -
ResponseInterceptor<
T> = Future< Response< Function(Request<T> ?>T> request, Type targetType, HttpClientResponse response) - ScreenUtilInitBuilder = Widget Function(BuildContext context, Widget? child)
- SnackbarStatusCallback = void Function(SnackbarStatus? status)
- StorageFactory = GetStorage Function()
-
ValueBuilderBuilder<
T> = Widget Function(T snapshot, ValueBuilderUpdateCallback< T> updater) -
ValueBuilderUpdateCallback<
T> = void Function(T snapshot) -
ValueUpdater<
T> = T Function() - WidgetCallback = Widget Function()
-
WorkerCallback<
T> = dynamic Function(T callback)