xly library

xly 包默认入口:再导出各子模块与第三方便捷 API。

按需引用示例:

  • package:xly/xly.dart — 常用全家桶(含 MyPaths / MyUserDataDir*;不含 picker 与大型可选 UI,见下)
  • package:xly/app.dart — MyApp / 路由 / 窗口
  • package:xly/float_panel.dart — MyFloatPanel
  • package: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, all GetPages and navigation methods (like Get.to()) have a binding property 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>
GetNavConfig
This config enables us to navigate directly to a sub-url
GetNavigator
GetNotifier<T>
GetObserver
GetPage<T>
GetPageRoute<T>
GetPlatform
GetQueue
GetResponsiveView<T>
Extend this widget to build responsive view. this widget contains the screen property that have all information about the screen size and type. You have two options to build it. 1- with builder method you return the widget to build. 2- with methods desktop, tablet,phone, watch. the specific method will be built when the screen type matches the method when the screen is ScreenType.Tablet the tablet method will be exuded and so on. Note if you use this method please set the property alwaysUseBuilder to false With settings property 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 as onInit and onClose when 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 DisposableInterface to 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 Types outside the common native Dart types. For example, any custom "Model" class, like User().obs will use Rx as 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 String Type.
RxNum
RxSet<E>
RxStatus
RxString
Rx class for String Type.
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 SingleTickerProviderMixin but only with Get Controllers. Simplifies AnimationController creation inside GetxController.
GetStateUpdaterMixin<T extends StatefulWidget>
Complies with GetStateUpdater
GetTickerProviderStateMixin
Used like TickerProviderMixin but 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 GetX and Obx, and allows the reactivity of those Widgets and Rx values.
ScrollMixin
SingleGetTickerProviderMixin
Used like SingleTickerProviderMixin but only with Get Controllers. Simplifies AnimationController creation inside GetxController.
StateMixin<T>
SU

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<int>> bodyBytes, Map<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 listener emits the last "value", when time hits, it calls callback with 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 listener changes. As long as the condition returns 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 the callback is common to all listeners, and the callback is executed to each one of them. The Worker is common to all, so worker.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 listener during time (1 sec by default) or until condition is met (can be a bool expression or a bool 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 when condition is met and cancel the subscription to the listener stream right after that. condition defines when callback is called, and can be a bool or a bool 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<T>?> Function(Request<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)