提交 18259842 authored 作者: caoyongfeng's avatar caoyongfeng

Merge branch 'v1.0.3' into v1.0.3_list_remove_item

# Conflicts: # lib/utils/toast_util.dart
...@@ -44,4 +44,6 @@ ...@@ -44,4 +44,6 @@
* hideName姓名脱敏 * hideName姓名脱敏
* ## 1.2.2 * ## 1.2.2
* hideBankCard银行卡号脱敏 * hideBankCard银行卡号脱敏
* ## 1.2.3
* SearchAppBar增加搜索背景圆角属性设置
\ No newline at end of file
...@@ -102,7 +102,11 @@ setProxyDialog(context) { ...@@ -102,7 +102,11 @@ setProxyDialog(context) {
spProxyIp, ipController.value.text.toString().trim()); spProxyIp, ipController.value.text.toString().trim());
SpUtil.putString( SpUtil.putString(
spProxyPort, portController.value.text.toString().trim()); spProxyPort, portController.value.text.toString().trim());
// 延迟1s 退出,修复保存失败问题
Future.delayed(const Duration(seconds: 1), () {
exit(0); exit(0);
});
}, },
child: Container( child: Container(
margin: const EdgeInsets.only( margin: const EdgeInsets.only(
......
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_clx_base/common/extension.dart'; import 'package:flutter_clx_base/common/extension.dart';
import 'package:fluttertoast/fluttertoast.dart'; import 'package:fluttertoast/fluttertoast.dart';
class ToastUtil { class ToastUtil {
static void showToast(String? txt, static void showToast(String? txt,
{ToastDuration toastDuration = ToastDuration.short, {ToastDuration toastDuration = ToastDuration.short}) {
ToastGravity gravity = ToastGravity.BOTTOM}) {
if (txt.isNullOrEmpty()) { if (txt.isNullOrEmpty()) {
txt = "信息异常"; txt = "信息异常";
} }
...@@ -14,7 +14,7 @@ class ToastUtil { ...@@ -14,7 +14,7 @@ class ToastUtil {
toastLength: toastDuration == ToastDuration.long toastLength: toastDuration == ToastDuration.long
? Toast.LENGTH_LONG ? Toast.LENGTH_LONG
: Toast.LENGTH_SHORT, : Toast.LENGTH_SHORT,
gravity: gravity, gravity: ToastGravity.CENTER,
// timeInSecForIos: 1, // timeInSecForIos: 1,
backgroundColor: const Color(0xB3000000), backgroundColor: const Color(0xB3000000),
textColor: Colors.white, textColor: Colors.white,
......
...@@ -55,6 +55,8 @@ class _BaseListWidgetState extends State<BaseListWidget> { ...@@ -55,6 +55,8 @@ class _BaseListWidgetState extends State<BaseListWidget> {
StateType _stateType = StateType.loading; // 列表状态 StateType _stateType = StateType.loading; // 列表状态
// 禁止手动触发滚动,处理刷新过程中禁止滚动列表操作 // 禁止手动触发滚动,处理刷新过程中禁止滚动列表操作
bool _disallowScroll = false; bool _disallowScroll = false;
// 禁止手动触发滚动遮罩State,单独刷新,否则列表项会刷新两次
StateSetter? _disallowScrollState;
bool _callReloading = false; // 触发自动刷新标识 bool _callReloading = false; // 触发自动刷新标识
@override @override
...@@ -103,13 +105,17 @@ class _BaseListWidgetState extends State<BaseListWidget> { ...@@ -103,13 +105,17 @@ class _BaseListWidgetState extends State<BaseListWidget> {
child: buildScrollView(), child: buildScrollView(),
), ),
// 列表刷新时,增加透明遮罩,禁止滚动列表 // 列表刷新时,增加透明遮罩,禁止滚动列表
Visibility( StatefulBuilder(builder: (context, setState) {
_disallowScrollState = setState;
return Visibility(
visible: _disallowScroll, visible: _disallowScroll,
child: Container( child: Container(
color: Colors.transparent, color: Colors.transparent,
width: double.infinity, width: double.infinity,
height: double.infinity), height: double.infinity,
), ),
);
}),
], ],
); );
} }
...@@ -297,7 +303,7 @@ class _BaseListWidgetState extends State<BaseListWidget> { ...@@ -297,7 +303,7 @@ class _BaseListWidgetState extends State<BaseListWidget> {
// 禁止手动触发滚动 // 禁止手动触发滚动
void setDisallowScroll() { void setDisallowScroll() {
if (mounted) { if (mounted) {
setState(() { _disallowScrollState?.call(() {
_disallowScroll = true; _disallowScroll = true;
}); });
} }
......
...@@ -55,6 +55,7 @@ class ImageWidget { ...@@ -55,6 +55,7 @@ class ImageWidget {
BoxFit? fit, BoxFit? fit,
String format = 'png', String format = 'png',
Color? color, Color? color,
String? package,
}) { }) {
return Image.asset( return Image.asset(
ImageUtils.getImgPath(image, format: format), ImageUtils.getImgPath(image, format: format),
...@@ -64,6 +65,7 @@ class ImageWidget { ...@@ -64,6 +65,7 @@ class ImageWidget {
cacheHeight: cacheHeight, cacheHeight: cacheHeight,
fit: fit, fit: fit,
color: color, color: color,
package: package,
/// 忽略图片语义 /// 忽略图片语义
excludeFromSemantics: true, excludeFromSemantics: true,
......
...@@ -16,6 +16,7 @@ class MyScaffold extends StatelessWidget { ...@@ -16,6 +16,7 @@ class MyScaffold extends StatelessWidget {
final KeyboardActionsConfig? keyboardConfig; final KeyboardActionsConfig? keyboardConfig;
final Widget? floatingActionButton; final Widget? floatingActionButton;
final ScrollController? controller; final ScrollController? controller;
final Widget? endDrawer;
const MyScaffold({ const MyScaffold({
Key? key, Key? key,
...@@ -30,6 +31,7 @@ class MyScaffold extends StatelessWidget { ...@@ -30,6 +31,7 @@ class MyScaffold extends StatelessWidget {
this.keyboardConfig, this.keyboardConfig,
this.floatingActionButton, this.floatingActionButton,
this.controller, this.controller,
this.endDrawer,
}) : super(key: key); }) : super(key: key);
@override @override
...@@ -37,6 +39,7 @@ class MyScaffold extends StatelessWidget { ...@@ -37,6 +39,7 @@ class MyScaffold extends StatelessWidget {
return Scaffold( return Scaffold(
appBar: appBar ?? MyPageAppBar(title: title), appBar: appBar ?? MyPageAppBar(title: title),
backgroundColor: backgroundColor ?? const Color(0xFFf2f3f3), backgroundColor: backgroundColor ?? const Color(0xFFf2f3f3),
endDrawer: endDrawer,
body: SafeArea( body: SafeArea(
child: body ?? child: body ??
MyScrollView( MyScrollView(
......
...@@ -23,6 +23,7 @@ class SearchAppBar extends StatefulWidget implements PreferredSizeWidget { ...@@ -23,6 +23,7 @@ class SearchAppBar extends StatefulWidget implements PreferredSizeWidget {
final bool automaticallyImplyLeading; final bool automaticallyImplyLeading;
final TextEditingController? textEditingController; final TextEditingController? textEditingController;
final double? leadingWidth; final double? leadingWidth;
final double? searchBgRadius; // 搜索背景圆角
const SearchAppBar({ const SearchAppBar({
Key? key, Key? key,
...@@ -46,6 +47,7 @@ class SearchAppBar extends StatefulWidget implements PreferredSizeWidget { ...@@ -46,6 +47,7 @@ class SearchAppBar extends StatefulWidget implements PreferredSizeWidget {
this.automaticallyImplyLeading = true, this.automaticallyImplyLeading = true,
this.textEditingController, this.textEditingController,
this.leadingWidth, this.leadingWidth,
this.searchBgRadius,
}) : super(key: key); }) : super(key: key);
@override @override
...@@ -90,7 +92,8 @@ class _SearchAppBarState extends State<SearchAppBar> { ...@@ -90,7 +92,8 @@ class _SearchAppBarState extends State<SearchAppBar> {
child: Container( child: Container(
margin: widget.margin, margin: widget.margin,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: const BorderRadius.all(Radius.circular(20.0)), borderRadius: BorderRadius.all(
Radius.circular(widget.searchBgRadius ?? 20.0)),
color: color:
widget.searchBackgroundColor ?? const Color(0xFFEEEEEE), widget.searchBackgroundColor ?? const Color(0xFFEEEEEE),
), ),
......
...@@ -77,6 +77,7 @@ class _StateLayoutState extends State<StateLayout> { ...@@ -77,6 +77,7 @@ class _StateLayoutState extends State<StateLayout> {
img, img,
width: 133.5 * 2, width: 133.5 * 2,
height: 95 * 2, height: 95 * 2,
package: "flutter_clx_base",
) )
: const SizedBox(), : const SizedBox(),
Text( Text(
......
...@@ -87,6 +87,8 @@ flutter: ...@@ -87,6 +87,8 @@ flutter:
# adding or updating assets for this project. # adding or updating assets for this project.
# To add assets to your plugin package, add an assets section, like this: # To add assets to your plugin package, add an assets section, like this:
assets:
- assets/images/
# assets: # assets:
# - images/a_dot_burr.jpeg # - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg # - images/a_dot_ham.jpeg
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论