提交 72c27baf authored 作者: 张国庆's avatar 张国庆

feat: 升级依赖版本到支持到 flutter3.38.3

上级 80a26b16
#
# Generated file, do not edit.
#
import lldb
def handle_new_rx_page(frame: lldb.SBFrame, bp_loc, extra_args, intern_dict):
"""Intercept NOTIFY_DEBUGGER_ABOUT_RX_PAGES and touch the pages."""
base = frame.register["x0"].GetValueAsAddress()
page_len = frame.register["x1"].GetValueAsUnsigned()
# Note: NOTIFY_DEBUGGER_ABOUT_RX_PAGES will check contents of the
# first page to see if handled it correctly. This makes diagnosing
# misconfiguration (e.g. missing breakpoint) easier.
data = bytearray(page_len)
data[0:8] = b'IHELPED!'
error = lldb.SBError()
frame.GetThread().GetProcess().WriteMemory(base, data, error)
if not error.Success():
print(f'Failed to write into {base}[+{page_len}]', error)
return
def __lldb_init_module(debugger: lldb.SBDebugger, _):
target = debugger.GetDummyTarget()
# Caveat: must use BreakpointCreateByRegEx here and not
# BreakpointCreateByName. For some reasons callback function does not
# get carried over from dummy target for the later.
bp = target.BreakpointCreateByRegex("^NOTIFY_DEBUGGER_ABOUT_RX_PAGES$")
bp.SetScriptCallbackFunction('{}.handle_new_rx_page'.format(__name__))
bp.SetAutoContinue(True)
print("-- LLDB integration loaded --")
#
# Generated file, do not edit.
#
command script import --relative-to-command-file flutter_lldb_helper.py
...@@ -13,7 +13,7 @@ class SkeletonItem extends StatelessWidget { ...@@ -13,7 +13,7 @@ class SkeletonItem extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final themeData = Theme.of(context); final themeData = Theme.of(context);
final backgroundColor = themeData.colorScheme.surfaceVariant; final backgroundColor = themeData.colorScheme.surfaceContainerHighest;
final foregroundColor = themeData.colorScheme.surface; final foregroundColor = themeData.colorScheme.surface;
if (direction == Axis.vertical) { if (direction == Axis.vertical) {
return Card( return Card(
......
...@@ -36,7 +36,7 @@ void setProxyUri(Dio? dio, bool isProdEnv) { ...@@ -36,7 +36,7 @@ void setProxyUri(Dio? dio, bool isProdEnv) {
} }
/// 设置代理widget /// 设置代理widget
setProxyWidget(context) { StatelessWidget setProxyWidget(BuildContext context) {
return (!setProxyFlag) return (!setProxyFlag)
? Container() ? Container()
: InkWell( : InkWell(
...@@ -62,7 +62,7 @@ var ipController = TextEditingController(); ...@@ -62,7 +62,7 @@ var ipController = TextEditingController();
var portController = TextEditingController(); var portController = TextEditingController();
/// 设置代理dialog /// 设置代理dialog
setProxyDialog(context) { void setProxyDialog(BuildContext context) {
ipController.text = SpUtil.getString(spProxyIp) ?? ""; ipController.text = SpUtil.getString(spProxyIp) ?? "";
portController.text = SpUtil.getString(spProxyPort) ?? ""; portController.text = SpUtil.getString(spProxyPort) ?? "";
showDialog( showDialog(
...@@ -80,7 +80,7 @@ setProxyDialog(context) { ...@@ -80,7 +80,7 @@ setProxyDialog(context) {
const Spacer(), const Spacer(),
Builder(builder: (context) { Builder(builder: (context) {
return Switch( return Switch(
activeColor: Colors.blue, activeThumbColor: Colors.blue,
activeTrackColor: Colors.grey, activeTrackColor: Colors.grey,
inactiveThumbColor: Colors.blue, inactiveThumbColor: Colors.blue,
inactiveTrackColor: Colors.grey, inactiveTrackColor: Colors.grey,
...@@ -144,7 +144,7 @@ bool _checkInfo() { ...@@ -144,7 +144,7 @@ bool _checkInfo() {
} }
/// ip、端口 输入框 /// ip、端口 输入框
Widget _textFieldItem({title, controller}) { Widget _textFieldItem({required String title, required TextEditingController controller}) {
return Container( return Container(
padding: const EdgeInsets.symmetric(horizontal: 20.0), padding: const EdgeInsets.symmetric(horizontal: 20.0),
margin: const EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0), margin: const EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0),
......
// ignore_for_file: depend_on_referenced_packages
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:flutter_clx_base/utils/log_utils.dart'; import 'package:flutter_clx_base/utils/log_utils.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
...@@ -109,7 +111,7 @@ extension StringExt on String? { ...@@ -109,7 +111,7 @@ extension StringExt on String? {
/// num 扩展函数 /// num 扩展函数
extension DoubleExt on num? { extension DoubleExt on num? {
// 格式化小数两位 // 格式化小数两位
String formatDouble({nullTxt = "-"}) { String formatDouble({String nullTxt = "-"}) {
if (this == null) { if (this == null) {
return nullTxt; return nullTxt;
} }
...@@ -138,7 +140,7 @@ extension DoubleExt on num? { ...@@ -138,7 +140,7 @@ extension DoubleExt on num? {
} }
// int 转换 默认0 // int 转换 默认0
String formatInt({nullTxt = "-"}) { String formatInt({String nullTxt = "-"}) {
if (this == null) { if (this == null) {
return nullTxt; return nullTxt;
} }
...@@ -166,7 +168,7 @@ extension DoubleExt on num? { ...@@ -166,7 +168,7 @@ extension DoubleExt on num? {
/// TextEditingController 扩展 /// TextEditingController 扩展
extension TextEditingControllerExt on TextEditingController? { extension TextEditingControllerExt on TextEditingController? {
setContent(String text) { void setContent(String text) {
// 设置内容 光标展示最后 // 设置内容 光标展示最后
this this
?..text = text ?..text = text
......
...@@ -88,7 +88,7 @@ const Widget vGap130 = SizedBox(height: 130.0); ...@@ -88,7 +88,7 @@ const Widget vGap130 = SizedBox(height: 130.0);
const Widget vGap140 = SizedBox(height: 140.0); const Widget vGap140 = SizedBox(height: 140.0);
const Widget vGap150 = SizedBox(height: 150.0); const Widget vGap150 = SizedBox(height: 150.0);
Widget line({height = 1.0, Color? color}) => Widget line({double height = 1.0, Color? color}) =>
Divider(height: height, color: color, thickness: height); Divider(height: height, color: color, thickness: height);
Widget vLine({double? width, double? height, Color? color}) => SizedBox( Widget vLine({double? width, double? height, Color? color}) => SizedBox(
......
library flutter_clx_base; library;
export 'package:dio/dio.dart'; export 'package:dio/dio.dart';
...@@ -6,7 +6,7 @@ export 'package:easy_refresh/easy_refresh.dart'; ...@@ -6,7 +6,7 @@ export 'package:easy_refresh/easy_refresh.dart';
export 'package:flustars_flutter3/flustars_flutter3.dart'; export 'package:flustars_flutter3/flustars_flutter3.dart';
export 'package:flutter_cupertino_datetime_picker/flutter_cupertino_datetime_picker.dart'; export 'package:flutter_cupertino_datetime_picker/flutter_cupertino_datetime_picker.dart';
export 'package:flutter_localizations/flutter_localizations.dart'; export 'package:flutter_localizations/flutter_localizations.dart';
export 'package:get/get.dart' hide FormData hide MultipartFile hide Response; export 'package:get/get.dart' hide FormData, MultipartFile, Response;
export 'package:getwidget/getwidget.dart'; export 'package:getwidget/getwidget.dart';
export 'package:image_picker/image_picker.dart'; export 'package:image_picker/image_picker.dart';
export 'package:keyboard_actions/keyboard_actions.dart'; export 'package:keyboard_actions/keyboard_actions.dart';
...@@ -31,4 +31,5 @@ export 'widget/my_app_bar.dart'; ...@@ -31,4 +31,5 @@ export 'widget/my_app_bar.dart';
export 'widget/my_scaffold.dart'; export 'widget/my_scaffold.dart';
export 'widget/my_scroll_view.dart'; export 'widget/my_scroll_view.dart';
export 'widget/my_subclass_list_public.dart'; export 'widget/my_subclass_list_public.dart';
export 'widget/search_app_bar.dart'; export 'widget/search_app_bar.dart';
\ No newline at end of file export 'package:pretty_dio_logger/pretty_dio_logger.dart';
\ No newline at end of file
...@@ -29,7 +29,7 @@ String getTXTString(dynamic data) { ...@@ -29,7 +29,7 @@ String getTXTString(dynamic data) {
} }
// 格式化小数两位 // 格式化小数两位
String formatDouble(number, {nullTxt = "-"}) { String formatDouble(String? number, {String nullTxt = "-"}) {
if (number == null || number == "") { if (number == null || number == "") {
return nullTxt; return nullTxt;
} }
...@@ -42,9 +42,9 @@ String formatDouble(number, {nullTxt = "-"}) { ...@@ -42,9 +42,9 @@ String formatDouble(number, {nullTxt = "-"}) {
} }
if ((num.toString().length - num.toString().lastIndexOf(".") - 1) < 2) { if ((num.toString().length - num.toString().lastIndexOf(".") - 1) < 2) {
//小数点后有几位小数 //小数点后有几位小数
return num.toStringAsFixed(2) return num.toStringAsFixed(
.substring(0, num.toString().lastIndexOf(".") + 2 + 1) 2,
.toString(); ).substring(0, num.toString().lastIndexOf(".") + 2 + 1).toString();
} else { } else {
return num.toString() return num.toString()
.substring(0, num.toString().lastIndexOf(".") + 2 + 1) .substring(0, num.toString().lastIndexOf(".") + 2 + 1)
...@@ -53,12 +53,12 @@ String formatDouble(number, {nullTxt = "-"}) { ...@@ -53,12 +53,12 @@ String formatDouble(number, {nullTxt = "-"}) {
} }
// double格式化 默认 0.00 // double格式化 默认 0.00
String formatDoubleZero(number) { String formatDoubleZero(dynamic number) {
return formatDouble(number, nullTxt: "0.00"); return formatDouble(number, nullTxt: "0.00");
} }
// int 转换 默认0 // int 转换 默认0
String formatInt(number, {nullTxt = "-"}) { String formatInt(dynamic number, {String nullTxt = "-"}) {
if (number == null || number == "") { if (number == null || number == "") {
return nullTxt; return nullTxt;
} }
...@@ -73,7 +73,7 @@ String formatInt(number, {nullTxt = "-"}) { ...@@ -73,7 +73,7 @@ String formatInt(number, {nullTxt = "-"}) {
} }
// int格式化 默认 0 // int格式化 默认 0
String formatIntZero(number) { String formatIntZero(dynamic number) {
return formatInt(number, nullTxt: "0"); return formatInt(number, nullTxt: "0");
} }
...@@ -82,7 +82,7 @@ String formatIntZero(number) { ...@@ -82,7 +82,7 @@ String formatIntZero(number) {
/// onRefuse 拒绝权限 /// onRefuse 拒绝权限
/// onSettings 手动设置权限 /// onSettings 手动设置权限
/// onCancelSettings 不手动设置权限 /// onCancelSettings 不手动设置权限
requestPermission({ void requestPermission({
VoidCallback? onGranted, VoidCallback? onGranted,
VoidCallback? onRefuse, VoidCallback? onRefuse,
VoidCallback? onSettings, VoidCallback? onSettings,
...@@ -96,23 +96,22 @@ requestPermission({ ...@@ -96,23 +96,22 @@ requestPermission({
onFailed: onRefuse, // 权限拒绝回调 onFailed: onRefuse, // 权限拒绝回调
onOpenSetting: () { onOpenSetting: () {
Get.dialog( Get.dialog(
WillPopScope( PopScope(
onWillPop: () { canPop: false,
return Future.value(false); child: NormalDialog(
title: "温馨提示",
content: toSettingTip,
cancelBtnText: "稍后提醒",
confirmBtnText: "去授权",
onConfirm: () {
openAppSettings();
onSettings?.call(); // 跳转设置页面回调
}, },
child: NormalDialog( onCancel: onCancelSettings, // 不跳转设置页面回调
title: "温馨提示",
content: toSettingTip,
cancelBtnText: "稍后提醒",
confirmBtnText: "去授权",
onConfirm: () {
openAppSettings();
onSettings?.call(); // 跳转设置页面回调
},
onCancel: onCancelSettings, // 不跳转设置页面回调
),
), ),
barrierDismissible: false); ),
barrierDismissible: false,
);
}, },
); );
} }
// ignore: depend_on_referenced_packages
import 'package:shared_preferences/shared_preferences.dart';
/// 推荐:使用 Enum 来管理所有的 Key,避免字符串拼写错误
enum StorageKey {
token,
themeMode,
userName,
isFirstLaunch,
testKey, // 示例键
}
class StorageService {
// 1. 私有构造函数
StorageService._internal();
// 2. 静态单例对象
static final StorageService _instance = StorageService._internal();
// 3. 工厂构造函数,返回单例
factory StorageService() => _instance;
// 4. 初始化新版 API 实例 (无缓存,全异步,跨 Isolate 安全)
final SharedPreferencesAsync _prefs = SharedPreferencesAsync();
// =========================================================
// 通用泛型存储方法 (支持 String 和 Enum 作为 Key)
// =========================================================
/// 保存字符串
Future<void> setString(dynamic key, String value) async {
await _prefs.setString(_getKey(key), value);
}
/// 获取字符串
Future<String?> getString(dynamic key) async {
return await _prefs.getString(_getKey(key));
}
/// 保存布尔值
Future<void> setBool(dynamic key, bool value) async {
await _prefs.setBool(_getKey(key), value);
}
/// 获取布尔值
Future<bool?> getBool(dynamic key) async {
return await _prefs.getBool(_getKey(key));
}
/// 保存整数
Future<void> setInt(dynamic key, int value) async {
await _prefs.setInt(_getKey(key), value);
}
/// 获取整数
Future<int?> getInt(dynamic key) async {
return await _prefs.getInt(_getKey(key));
}
/// 保存浮点数
Future<void> setDouble(dynamic key, double value) async {
await _prefs.setDouble(_getKey(key), value);
}
/// 获取浮点数
Future<double?> getDouble(dynamic key) async {
return await _prefs.getDouble(_getKey(key));
}
/// 保存字符串列表
Future<void> setStringList(dynamic key, List<String> value) async {
await _prefs.setStringList(_getKey(key), value);
}
/// 获取字符串列表
Future<List<String>?> getStringList(dynamic key) async {
return await _prefs.getStringList(_getKey(key));
}
// =========================================================
// 删除与清空
// =========================================================
/// 删除单个 Key
Future<void> remove(dynamic key) async {
await _prefs.remove(_getKey(key));
}
/// 清空所有数据 (慎用)
/// allowList: 如果提供了列表,则只清除列表中的 Key
Future<void> clear({Set<String>? allowList}) async {
await _prefs.clear(allowList: allowList);
}
// =========================================================
// 内部辅助方法
// =========================================================
/// 将 Enum 转换为 String,或者直接使用 String
String _getKey(dynamic key) {
if (key is Enum) {
return key.name; // 或者使用 key.toString() 取决于你的偏好
} else if (key is String) {
return key;
} else {
throw Exception('Storage Key must be of type String or Enum');
}
}
}
\ No newline at end of file
...@@ -6,7 +6,7 @@ bool isNullOrEmpty(String? txt) { ...@@ -6,7 +6,7 @@ bool isNullOrEmpty(String? txt) {
} }
///判断文字是否为空 ///判断文字是否为空
String txtIsNull(txt, {nullTxt = "-"}) { String txtIsNull(String? txt, {String nullTxt = "-"}) {
if (txt == null || txt == "") { if (txt == null || txt == "") {
return nullTxt; return nullTxt;
} else { } else {
...@@ -14,11 +14,11 @@ String txtIsNull(txt, {nullTxt = "-"}) { ...@@ -14,11 +14,11 @@ String txtIsNull(txt, {nullTxt = "-"}) {
} }
} }
String txtIsNullWithTitle(txt, title, {nullTxt = "-"}) { String txtIsNullWithTitle(String? txt, String title, {String nullTxt = "-"}) {
if (txt == null || txt == "") { if (txt == null || txt == "") {
return nullTxt; return nullTxt;
} else { } else {
return title + ": " + txt; return "$title: $txt";
} }
} }
...@@ -113,7 +113,7 @@ bool checkPwdRuleDriver(String pwd){ ...@@ -113,7 +113,7 @@ bool checkPwdRuleDriver(String pwd){
} }
/// 禁止输入表情 /// 禁止输入表情
regexEmoji() { String regexEmoji() {
return "[^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uF900-\\uFAFF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u0080-\\u009F\\u2000-\\u201f\r\n]"; return "[^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uF900-\\uFAFF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u0080-\\u009F\\u2000-\\u201f\r\n]";
} }
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_clx_base/flutter_clx_base.dart'; import 'package:flutter_clx_base/flutter_clx_base.dart';
import 'package:flutter_clx_base/widget/state_layout.dart'; import 'package:flutter_clx_base/widget/state_layout.dart';
import 'package:flutter_spinkit/flutter_spinkit.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart';
...@@ -19,7 +18,7 @@ class BaseListWidget extends StatefulWidget { ...@@ -19,7 +18,7 @@ class BaseListWidget extends StatefulWidget {
final bool refreshOnStart; // 首次展示列表是否刷新数据 final bool refreshOnStart; // 首次展示列表是否刷新数据
const BaseListWidget({ const BaseListWidget({
Key? key, super.key,
required this.requestData, required this.requestData,
required this.itemBuilder, required this.itemBuilder,
this.pageSize = 10, this.pageSize = 10,
...@@ -30,7 +29,7 @@ class BaseListWidget extends StatefulWidget { ...@@ -30,7 +29,7 @@ class BaseListWidget extends StatefulWidget {
this.emptyWidget, this.emptyWidget,
this.canLoadMore = true, // 是否支持上拉刷新 this.canLoadMore = true, // 是否支持上拉刷新
this.refreshOnStart = true, this.refreshOnStart = true,
}) : super(key: key); });
@override @override
State<BaseListWidget> createState() => _BaseListWidgetState(); State<BaseListWidget> createState() => _BaseListWidgetState();
...@@ -38,7 +37,7 @@ class BaseListWidget extends StatefulWidget { ...@@ -38,7 +37,7 @@ class BaseListWidget extends StatefulWidget {
class _BaseListWidgetState extends State<BaseListWidget> { class _BaseListWidgetState extends State<BaseListWidget> {
late BaseListController _controller; late BaseListController _controller;
ScrollController _scrollController = ScrollController(); final ScrollController _scrollController = ScrollController();
final _CIProperties _headerProperties = _CIProperties( final _CIProperties _headerProperties = _CIProperties(
name: 'Header', name: 'Header',
alignment: MainAxisAlignment.center, alignment: MainAxisAlignment.center,
...@@ -167,7 +166,7 @@ class _BaseListWidgetState extends State<BaseListWidget> { ...@@ -167,7 +166,7 @@ class _BaseListWidgetState extends State<BaseListWidget> {
_stateType = isEmpty ? StateType.empty : StateType.success; _stateType = isEmpty ? StateType.empty : StateType.success;
} }
void _requestError(code, msg) { void _requestError( dynamic code, dynamic msg) {
if (!mounted) { if (!mounted) {
return; return;
} }
...@@ -189,7 +188,7 @@ class _BaseListWidgetState extends State<BaseListWidget> { ...@@ -189,7 +188,7 @@ class _BaseListWidgetState extends State<BaseListWidget> {
ClassicHeader( ClassicHeader(
clamping: _headerProperties.clamping, clamping: _headerProperties.clamping,
backgroundColor: _headerProperties.background backgroundColor: _headerProperties.background
? Theme.of(context).colorScheme.surfaceVariant ? Theme.of(context).colorScheme.surfaceContainerHighest
: null, : null,
mainAxisAlignment: _headerProperties.alignment, mainAxisAlignment: _headerProperties.alignment,
showMessage: _headerProperties.message, showMessage: _headerProperties.message,
...@@ -212,7 +211,7 @@ class _BaseListWidgetState extends State<BaseListWidget> { ...@@ -212,7 +211,7 @@ class _BaseListWidgetState extends State<BaseListWidget> {
ClassicFooter( ClassicFooter(
clamping: _footerProperties.clamping, clamping: _footerProperties.clamping,
backgroundColor: _footerProperties.background backgroundColor: _footerProperties.background
? Theme.of(context).colorScheme.surfaceVariant ? Theme.of(context).colorScheme.surfaceContainerHighest
: null, : null,
mainAxisAlignment: _footerProperties.alignment, mainAxisAlignment: _footerProperties.alignment,
showMessage: _footerProperties.message, showMessage: _footerProperties.message,
...@@ -283,7 +282,7 @@ class _BaseListWidgetState extends State<BaseListWidget> { ...@@ -283,7 +282,7 @@ class _BaseListWidgetState extends State<BaseListWidget> {
} }
// 刷新单个数据 // 刷新单个数据
void notifySingleItem(index, item) { void notifySingleItem(int index, dynamic item) {
_dataList[index] = item; _dataList[index] = item;
if (mounted) { if (mounted) {
setState(() {}); setState(() {});
...@@ -356,7 +355,7 @@ class BaseListController { ...@@ -356,7 +355,7 @@ class BaseListController {
} }
// 刷新单个数据 // 刷新单个数据
void notifySingleItem(index, item) { void notifySingleItem(int index, dynamic item) {
_listState?.notifySingleItem(index, item); _listState?.notifySingleItem(index, item);
} }
...@@ -373,7 +372,7 @@ class BaseListController { ...@@ -373,7 +372,7 @@ class BaseListController {
); );
} }
get c => _controller; EasyRefreshController get c => _controller;
int? get total => _listState?._count; int? get total => _listState?._count;
} }
......
...@@ -7,7 +7,7 @@ class CustomPagingList extends EasyPaging<List<String>, String> { ...@@ -7,7 +7,7 @@ class CustomPagingList extends EasyPaging<List<String>, String> {
const CustomPagingList({ const CustomPagingList({
Key? key, super.key,
super.callLoadOverOffset, super.callLoadOverOffset,
super.callRefreshOverOffset, super.callRefreshOverOffset,
super.clipBehavior, super.clipBehavior,
...@@ -24,7 +24,7 @@ class CustomPagingList extends EasyPaging<List<String>, String> { ...@@ -24,7 +24,7 @@ class CustomPagingList extends EasyPaging<List<String>, String> {
super.itemBuilder, super.itemBuilder,
super.refreshOnStartWidgetBuilder, super.refreshOnStartWidgetBuilder,
super.emptyWidgetBuilder, super.emptyWidgetBuilder,
}) : super(key: key); });
@override @override
......
...@@ -9,8 +9,7 @@ class HeadWidget extends StatelessWidget { ...@@ -9,8 +9,7 @@ class HeadWidget extends StatelessWidget {
final double? height; final double? height;
const HeadWidget( const HeadWidget(
{Key? key, this.domain, this.headUrl, this.width, this.height}) {super.key, this.domain, this.headUrl, this.width, this.height});
: super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
......
...@@ -87,7 +87,7 @@ class ImageWidget { ...@@ -87,7 +87,7 @@ class ImageWidget {
//缓存 本地图片 //缓存 本地图片
static void cacheAssetImage( static void cacheAssetImage(
context, BuildContext context,
String image, { String image, {
String format = 'png', String format = 'png',
}) { }) {
...@@ -97,7 +97,7 @@ class ImageWidget { ...@@ -97,7 +97,7 @@ class ImageWidget {
//缓存 网络图片 //缓存 网络图片
static void cacheNetImage( static void cacheNetImage(
context, BuildContext context,
String url, { String url, {
String? domain, String? domain,
}) { }) {
......
...@@ -13,7 +13,7 @@ class MyPageAppBar extends StatelessWidget implements PreferredSizeWidget { ...@@ -13,7 +13,7 @@ class MyPageAppBar extends StatelessWidget implements PreferredSizeWidget {
final double? titleSpacing; // 标题横向padding final double? titleSpacing; // 标题横向padding
const MyPageAppBar({ const MyPageAppBar({
Key? key, super.key,
this.title, this.title,
this.backgroundColor, this.backgroundColor,
this.foregroundColor, this.foregroundColor,
...@@ -24,7 +24,7 @@ class MyPageAppBar extends StatelessWidget implements PreferredSizeWidget { ...@@ -24,7 +24,7 @@ class MyPageAppBar extends StatelessWidget implements PreferredSizeWidget {
this.elevation = 0, this.elevation = 0,
this.titleWidget, this.titleWidget,
this.titleSpacing, this.titleSpacing,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
......
...@@ -8,7 +8,7 @@ import 'state_layout.dart'; ...@@ -8,7 +8,7 @@ import 'state_layout.dart';
/// 封装下拉刷新与加载更多 /// 封装下拉刷新与加载更多
class MyListViewPublic extends StatefulWidget { class MyListViewPublic extends StatefulWidget {
const MyListViewPublic({ const MyListViewPublic({
Key? key, super.key,
required this.itemBuilder, required this.itemBuilder,
required this.requestData, required this.requestData,
this.pageSize = 10, this.pageSize = 10,
...@@ -21,7 +21,7 @@ class MyListViewPublic extends StatefulWidget { ...@@ -21,7 +21,7 @@ class MyListViewPublic extends StatefulWidget {
this.emptyText, this.emptyText,
this.emptyImg, this.emptyImg,
this.errorImg, this.errorImg,
}) : super(key: key); });
final bool canLoadMore; //是否允许上拉 final bool canLoadMore; //是否允许上拉
final ItemBuilder itemBuilder; final ItemBuilder itemBuilder;
...@@ -93,7 +93,7 @@ class _MyListViewPublicState extends State<MyListViewPublic> { ...@@ -93,7 +93,7 @@ class _MyListViewPublicState extends State<MyListViewPublic> {
} }
// 移除数据 // 移除数据
void removeItem(index) { void removeItem(int index) {
_dataList.removeAt(index); _dataList.removeAt(index);
listItemCount = _dataList.length; listItemCount = _dataList.length;
if (_dataList.isEmpty) { if (_dataList.isEmpty) {
...@@ -108,7 +108,7 @@ class _MyListViewPublicState extends State<MyListViewPublic> { ...@@ -108,7 +108,7 @@ class _MyListViewPublicState extends State<MyListViewPublic> {
} }
// 刷新单个数据 // 刷新单个数据
void notifySingleItem(index, beanJson) { void notifySingleItem(int index, dynamic beanJson) {
_dataList[index] = beanJson; _dataList[index] = beanJson;
if (mounted) { if (mounted) {
setState(() {}); setState(() {});
...@@ -196,7 +196,7 @@ class _MyListViewPublicState extends State<MyListViewPublic> { ...@@ -196,7 +196,7 @@ class _MyListViewPublicState extends State<MyListViewPublic> {
} }
} }
void _requestError(r, s) { void _requestError(dynamic r, dynamic s) {
stateType = StateType.error; //显示异常布局 stateType = StateType.error; //显示异常布局
_isLoading = false; _isLoading = false;
if (mounted) { if (mounted) {
...@@ -233,12 +233,12 @@ class MyListController { ...@@ -233,12 +233,12 @@ class MyListController {
} }
// 移除数据 // 移除数据
void removeItem(index) { void removeItem(int index) {
return _deerListViewState?.removeItem(index); return _deerListViewState?.removeItem(index);
} }
// 刷新单个数据 // 刷新单个数据
void notifySingleItem(index, beanJson) { void notifySingleItem(int index, dynamic beanJson) {
return _deerListViewState?.notifySingleItem(index, beanJson); return _deerListViewState?.notifySingleItem(index, beanJson);
} }
} }
...@@ -248,8 +248,8 @@ class MoreWidget extends StatelessWidget { ...@@ -248,8 +248,8 @@ class MoreWidget extends StatelessWidget {
this.itemCount, this.itemCount,
this.hasMore, this.hasMore,
this.pageSize, { this.pageSize, {
Key? key, super.key,
}) : super(key: key); });
final int itemCount; final int itemCount;
final bool hasMore; final bool hasMore;
......
...@@ -19,7 +19,7 @@ class MyScaffold extends StatelessWidget { ...@@ -19,7 +19,7 @@ class MyScaffold extends StatelessWidget {
final Widget? endDrawer; final Widget? endDrawer;
const MyScaffold({ const MyScaffold({
Key? key, super.key,
this.appBar, this.appBar,
this.backgroundColor, this.backgroundColor,
this.title = "", this.title = "",
...@@ -32,7 +32,7 @@ class MyScaffold extends StatelessWidget { ...@@ -32,7 +32,7 @@ class MyScaffold extends StatelessWidget {
this.floatingActionButton, this.floatingActionButton,
this.controller, this.controller,
this.endDrawer, this.endDrawer,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
......
...@@ -8,7 +8,7 @@ class MyScrollView extends StatelessWidget { ...@@ -8,7 +8,7 @@ class MyScrollView extends StatelessWidget {
/// 注意:同时存在底部按钮与keyboardConfig配置时,为保证软键盘弹出高度正常。需要在`Scaffold`使用 `resizeToAvoidBottomInset: defaultTargetPlatform != TargetPlatform.iOS,` /// 注意:同时存在底部按钮与keyboardConfig配置时,为保证软键盘弹出高度正常。需要在`Scaffold`使用 `resizeToAvoidBottomInset: defaultTargetPlatform != TargetPlatform.iOS,`
/// 除非Android与iOS平台均使用keyboard_actions /// 除非Android与iOS平台均使用keyboard_actions
const MyScrollView({ const MyScrollView({
Key? key, super.key,
required this.children, required this.children,
this.padding, this.padding,
this.physics = const BouncingScrollPhysics(), this.physics = const BouncingScrollPhysics(),
...@@ -18,7 +18,7 @@ class MyScrollView extends StatelessWidget { ...@@ -18,7 +18,7 @@ class MyScrollView extends StatelessWidget {
this.tapOutsideToDismiss = false, this.tapOutsideToDismiss = false,
this.overScroll = 16.0, this.overScroll = 16.0,
this.controller, this.controller,
}) : super(key: key); });
final List<Widget> children; final List<Widget> children;
final EdgeInsetsGeometry? padding; final EdgeInsetsGeometry? padding;
......
...@@ -19,7 +19,7 @@ class MySubListViewPublic extends StatelessWidget { ...@@ -19,7 +19,7 @@ class MySubListViewPublic extends StatelessWidget {
final Function? onRefresh; final Function? onRefresh;
const MySubListViewPublic({ const MySubListViewPublic({
Key? key, super.key,
required this.itemBuilder, required this.itemBuilder,
required this.requestData, required this.requestData,
this.pageSize = 10, this.pageSize = 10,
...@@ -31,7 +31,7 @@ class MySubListViewPublic extends StatelessWidget { ...@@ -31,7 +31,7 @@ class MySubListViewPublic extends StatelessWidget {
this.firstRefresh = true, this.firstRefresh = true,
this.emptyText, this.emptyText,
this.emptyImg, this.emptyImg,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
......
...@@ -29,7 +29,7 @@ class SearchAppBar extends StatefulWidget implements PreferredSizeWidget { ...@@ -29,7 +29,7 @@ class SearchAppBar extends StatefulWidget implements PreferredSizeWidget {
final double? elevation; // 阴影 final double? elevation; // 阴影
const SearchAppBar({ const SearchAppBar({
Key? key, super.key,
this.onCallback, this.onCallback,
this.hintText = "请输入搜索内容", this.hintText = "请输入搜索内容",
this.leading, this.leading,
...@@ -53,7 +53,7 @@ class SearchAppBar extends StatefulWidget implements PreferredSizeWidget { ...@@ -53,7 +53,7 @@ class SearchAppBar extends StatefulWidget implements PreferredSizeWidget {
this.searchBgRadius, this.searchBgRadius,
this.maxLength, this.maxLength,
this.elevation, this.elevation,
}) : super(key: key); });
@override @override
State<SearchAppBar> createState() => _SearchAppBarState(); State<SearchAppBar> createState() => _SearchAppBarState();
......
...@@ -4,7 +4,7 @@ import 'package:flutter_clx_base/common/gaps.dart'; ...@@ -4,7 +4,7 @@ import 'package:flutter_clx_base/common/gaps.dart';
class SelectTextItem extends StatelessWidget { class SelectTextItem extends StatelessWidget {
const SelectTextItem({ const SelectTextItem({
Key? key, super.key,
required this.title, required this.title,
this.titleColor = text999, this.titleColor = text999,
this.titleFontSize = 14.0, this.titleFontSize = 14.0,
...@@ -26,7 +26,7 @@ class SelectTextItem extends StatelessWidget { ...@@ -26,7 +26,7 @@ class SelectTextItem extends StatelessWidget {
this.leftImage, this.leftImage,
this.leftImageWidth, this.leftImageWidth,
this.leftImageHeight, this.leftImageHeight,
}) : super(key: key); });
final GestureTapCallback? onTap; final GestureTapCallback? onTap;
final String title; final String title;
......
...@@ -12,7 +12,7 @@ class StateLayout extends StatefulWidget { ...@@ -12,7 +12,7 @@ class StateLayout extends StatefulWidget {
final double size; final double size;
const StateLayout({ const StateLayout({
Key? key, super.key,
required this.type, required this.type,
this.emptyImg, this.emptyImg,
this.hintText, this.hintText,
...@@ -20,7 +20,7 @@ class StateLayout extends StatefulWidget { ...@@ -20,7 +20,7 @@ class StateLayout extends StatefulWidget {
this.onRefresh, this.onRefresh,
this.loadingWidget, this.loadingWidget,
this.size = 270, this.size = 270,
}) : super(key: key); });
@override @override
State<StateLayout> createState() => _StateLayoutState(); State<StateLayout> createState() => _StateLayoutState();
......
name: flutter_clx_base name: flutter_clx_base
description: A new base library description: A new base library
version: 1.0.7 version: 1.0.7
homepage: http://t.clxkj.cn/clx-android/flutter_clx_base.git homepage: https://t.clxkj.cn/clx-android/flutter_clx_base
environment: environment:
sdk: ">=2.17.0 <4.0.0" sdk: ^3.10.1
flutter: ">=2.5.0" flutter: ">=2.5.0"
dependencies: dependencies:
...@@ -13,68 +13,59 @@ dependencies: ...@@ -13,68 +13,59 @@ dependencies:
flutter_localizations: flutter_localizations:
sdk: flutter sdk: flutter
# dio https://pub.dev/packages/dio # dio https://pub.dev/packages/dio
dio: ^5.3.1 dio: 5.9.0
# 时间选择器 https://pub.dev/packages/flutter_cupertino_datetime_picker # 时间选择器 https://pub.dev/packages/flutter_cupertino_datetime_picker
flutter_cupertino_datetime_picker: ^3.0.0 flutter_cupertino_datetime_picker: 3.0.0
# 键盘工具类 https://pub.dev/packages/keyboard_actions # 键盘工具类 https://pub.dev/packages/keyboard_actions
keyboard_actions: ^4.0.1 keyboard_actions: 4.2.1
# sp https://pub.dev/packages/sp_util # sp https://pub.dev/packages/sp_util
sp_util: ^2.0.3 sp_util: 2.0.3
# get https://pub.dev/packages/get # get https://pub.dev/packages/get
get: ^4.6.5 get: 4.7.3
# 日志打印 https://pub.dev/packages/logger # 日志打印 https://pub.dev/packages/logger
logger: ^1.2.2 logger: 2.6.2
# toast https://pub.dev/packages/fluttertoast # toast https://pub.dev/packages/fluttertoast
fluttertoast: ^8.2.1 fluttertoast: 9.0.0
# webview https://pub.dev/packages/webview_flutter # webview https://pub.dev/packages/webview_flutter
webview_flutter: ^4.0.5 webview_flutter: 4.13.0
# 显示网页Widget https://pub.dev/packages/flutter_widget_from_html_core # 显示网页Widget https://pub.dev/packages/flutter_widget_from_html_core
flutter_widget_from_html_core: ^0.10.0 flutter_widget_from_html_core: 0.17.0
# 包信息 https://pub.dev/packages/package_info_plus # 包信息 https://pub.dev/packages/package_info_plus
package_info_plus: ^3.0.3 package_info_plus: 9.0.0
# 权限 https://pub.dev/packages/permission_handler # 权限 https://pub.dev/packages/permission_handler
permission_handler: ^9.2.0 permission_handler: 12.0.1
# https://pub.dev/packages/url_launcher # https://pub.dev/packages/url_launcher
url_launcher: ^6.1.2 url_launcher: 6.3.2
# loading https://pub.dev/packages/flutter_easyloading # loading https://pub.dev/packages/flutter_easyloading
flutter_easyloading: ^3.0.5 flutter_easyloading: 3.0.5
# https://pub.dev/packages/auto_size_text # https://pub.dev/packages/auto_size_text
auto_size_text: ^3.0.0 auto_size_text: 3.0.0
# https://pub.flutter-io.cn/packages/getwidget # https://pub.flutter-io.cn/packages/getwidget
getwidget: ^3.0.1 getwidget: 7.0.0
# https://pub.dev/packages/octo_image # https://pub.dev/packages/octo_image
octo_image: ^2.0.0 octo_image: 2.1.0
# https://pub.dev/packages/cached_network_image # https://pub.dev/packages/cached_network_image
cached_network_image: ^3.3.0 cached_network_image: 3.4.1
# https://pub.dev/packages/image_picker # https://pub.dev/packages/image_picker
image_picker: ^0.8.6 image_picker: 1.2.1
#https://pub.dev/packages/flustars_flutter3 #https://pub.dev/packages/flustars_flutter3
flustars_flutter3: ^3.0.0 flustars_flutter3: 3.0.0
#https://pub.dev/packages/easy_refresh #https://pub.dev/packages/easy_refresh
easy_refresh: ^3.3.1 easy_refresh: 3.4.0
#https://pub.dev/packages/flutter_spinkit #https://pub.dev/packages/flutter_spinkit
flutter_spinkit: ^5.1.0 flutter_spinkit: 5.2.2
# https://pub.dev/packages/pretty_dio_logger # https://pub.dev/packages/pretty_dio_logger
pretty_dio_logger: ^1.3.1 pretty_dio_logger: 1.4.0
# 获取设备唯一标识 https://pub.dev/packages/unique_identifier # 获取设备唯一标识 https://pub.dev/packages/unique_identifier
unique_identifier: ^0.3.0 unique_identifier: 0.4.0
# 设备信息 https://pub.dev/packages/device_info_plus # 设备信息 https://pub.dev/packages/device_info_plus
device_info_plus: ^8.1.0 device_info_plus: 12.3.0
#获取设备id https://t.clxkj:cn/openSourceLibrary/device_id_plugin.git #获取设备id https://t.clxkj:cn/openSourceLibrary/device_id_plugin.git
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
flutter_lints: ^2.0.0 flutter_lints: ^6.0.0
# For information on the generic Dart part of this file, see the # For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec # following page: https://dart.dev/tools/pub/pubspec
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论