提交 00ae16ec authored 作者: shixiaochen's avatar shixiaochen

Merge remote-tracking branch 'origin/v1.0.0' into v1.0.0

......@@ -9,4 +9,6 @@
## 1.0.5
* ImageWidget 修改 ,增加错误默认widget 参数 placeholder
## 1.0.6
* 修改ImageWidget 逻辑 增加缓存方法,加载网络图不使用 任何装饰圆角等
\ No newline at end of file
* 修改ImageWidget 逻辑 增加缓存方法,加载网络图不使用 任何装饰圆角等
## 1.0.7
* 修改列表因为网络问题无法显示异常提示布局问题
\ No newline at end of file
......@@ -194,7 +194,7 @@ packages:
path: ".."
relative: true
source: path
version: "1.0.6"
version: "1.0.7"
flutter_cupertino_datetime_picker:
dependency: transitive
description:
......
import 'dart:io';
import 'package:flutter/material.dart';
class MyPageAppBar extends StatelessWidget implements PreferredSizeWidget {
......@@ -23,7 +25,7 @@ class MyPageAppBar extends StatelessWidget implements PreferredSizeWidget {
this.actions,
this.exitApp = false,
this.leading,
this.elevation,
this.elevation = 0,
}) : super(key: key);
@override
......
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'state_layout.dart';
/// 封装下拉刷新与加载更多
class MyListViewPublic extends StatefulWidget {
const MyListViewPublic(
{Key? key,
required this.itemBuilder,
required this.requestData,
this.pageSize = 10,
this.padding,
this.itemExtent,
this.controller,
this.onRefresh,
this.canLoadMore = true,
this.firstRefresh = true,
this.emptyText})
: super(key: key);
const MyListViewPublic({Key? key,
required this.itemBuilder,
required this.requestData,
this.pageSize = 10,
this.padding,
this.itemExtent,
this.controller,
this.onRefresh,
this.canLoadMore = true,
this.firstRefresh = true,
this.emptyText,
this.emptyImg,
this.errorImg,
}) : super(key: key);
final bool canLoadMore; //是否允许上拉
final ItemBuilder itemBuilder;
......@@ -27,13 +26,19 @@ class MyListViewPublic extends StatefulWidget {
final bool firstRefresh;
final String? emptyText;
//(page, pageSize,_requestSuccess,_requestError){}
// 数据为空时,缺省图
final String? emptyImg;
//加载错误时,缺省图
final String? errorImg;
// (page, pageSize,_requestSuccess,_requestError){}
final RequestDataCallback requestData;
/// 一页的数量,默认为10
// 一页的数量,默认为10
final int pageSize;
/// padding属性使用时注意会破坏原有的SafeArea,需要自行计算bottom大小
// padding属性使用时注意会破坏原有的SafeArea,需要自行计算bottom大小
final EdgeInsetsGeometry? padding;
final double? itemExtent;
final Function? onRefresh;
......@@ -116,7 +121,9 @@ class _MyListViewPublicState extends State<MyListViewPublic> {
child: listItemCount == 0
? StateLayout(
type: stateType,
emptyImg: widget.emptyImg,
hintText: widget.emptyText,
errorImg: widget.errorImg,
)
: ScrollConfiguration(
//取消列表滑动水波纹
......@@ -172,7 +179,7 @@ class _MyListViewPublicState extends State<MyListViewPublic> {
void _requestSuccess(List? result) {
result ??= [];
if(page == 1) {
if (page == 1) {
_dataList.clear();
}
_dataList.addAll(result);
......@@ -189,8 +196,12 @@ class _MyListViewPublicState extends State<MyListViewPublic> {
}
}
void _requestError(r,s) {
void _requestError(r, s) {
stateType = StateType.error; //显示异常布局
_isLoading = false;
if (mounted) {
setState(() {});
}
}
Future<void> _loadMore() async {
......@@ -246,7 +257,7 @@ class MoreWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
TextStyle style = const TextStyle(color: Color(0x8A000000));
TextStyle style = const TextStyle(color: Color(0x8A000000));
return Padding(
padding: const EdgeInsets.symmetric(vertical: 10.0),
child: Row(
......
import 'package:flutter/material.dart';
import 'package:keyboard_actions/keyboard_actions.dart';
import 'my_app_bar.dart';
import 'my_scroll_view.dart';
......
import 'package:flutter/cupertino.dart';
import 'package:flutter_clx_base/widget/my_refresh_list_public.dart';
class MySubListViewPublic extends StatelessWidget {
final bool canLoadMore; //是否允许上拉
final ItemBuilder itemBuilder;
final MyListController? controller;
final bool firstRefresh;
final String? emptyText;
// 数据为空时,缺省图
final String? emptyImg;
// (page, pageSize,_requestSuccess,_requestError){}
final RequestDataCallback requestData;
// 一页的数量,默认为10
final int pageSize;
// padding属性使用时注意会破坏原有的SafeArea,需要自行计算bottom大小
final EdgeInsetsGeometry? padding;
final double? itemExtent;
final Function? onRefresh;
const MySubListViewPublic({
Key? key,
required this.itemBuilder,
required this.requestData,
this.pageSize = 10,
this.padding,
this.itemExtent,
this.controller,
this.onRefresh,
this.canLoadMore = true,
this.firstRefresh = true,
this.emptyText,
this.emptyImg,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return MyListViewPublic(
itemBuilder: itemBuilder,
requestData: requestData,
pageSize: pageSize,
padding: padding,
itemExtent: itemExtent,
controller: controller,
onRefresh: onRefresh,
canLoadMore: canLoadMore,
firstRefresh: firstRefresh,
emptyText: emptyText,
emptyImg: 'default_drawing_1',
errorImg: 'default_drawing_5',
);
}
}
\ No newline at end of file
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_clx_base/widget/image_widget.dart';
class StateLayout extends StatefulWidget {
const StateLayout({Key? key, required this.type, this.hintText})
: super(key: key);
final StateType type;
final String? emptyImg;
final String? hintText;
//加载错误,图片
final String? errorImg;
const StateLayout({
Key? key,
required this.type,
this.emptyImg,
this.hintText,
this.errorImg,
}) : super(key: key);
@override
State<StateLayout> createState() => _StateLayoutState();
......@@ -35,13 +44,13 @@ class _StateLayoutState extends State<StateLayout> {
Widget _otherWidget() {
switch (widget.type) {
case StateType.network:
return _buildNormalView('icon_no_wifi', '无网络连接');
return _buildNormalView(widget.errorImg ?? '', '无网络连接');
case StateType.loading:
return Container();
case StateType.empty:
return _buildNormalView('icon_empty', widget.hintText ?? '暂无数据');
return _buildNormalView(widget.emptyImg ?? '', widget.hintText ?? '暂无数据');
case StateType.error:
return _buildNormalView('icon_list_failure', '请求失败,请重试');
return _buildNormalView(widget.errorImg ?? '', '加载失败,请重试');
case StateType.success:
return Container();
}
......@@ -52,27 +61,26 @@ class _StateLayoutState extends State<StateLayout> {
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
// Opacity(
// opacity: 1,
// child: Container(
// height: 120.0,
// width: 120.0,
// decoration: BoxDecoration(
// image: DecorationImage(
// image: ImageUtils.getAssetImage(img),
// ),
// ),
// )),
const SizedBox(
height: 16.0,
const SizedBox(height: 30.0),
ImageWidget.loadAssetImage(
img,
width: 133.5*2,
height: 95*2,
),
Text(
hintText,
style: const TextStyle(fontSize: 14, color: Colors.grey),
style: const TextStyle(
color: Color(0xff86909C),
fontSize: 14.0,
fontWeight: FontWeight.normal,
),
),
const SizedBox(height: 30.0),
],
);
}
}
enum StateType {
......
name: flutter_clx_base
description: A new base library
version: 1.0.6
version: 1.0.7
homepage: http://t.clxkj.cn/clx-android/flutter_clx_base.git
environment:
......@@ -23,7 +23,7 @@ dependencies:
# 日志打印 https://pub.dev/packages/logger
logger: ^1.1.0
# toast https://pub.dev/packages/fluttertoast
fluttertoast: ^8.0.9
fluttertoast: 8.0.9
# webview https://pub.dev/packages/webview_flutter
flutter_html: ^2.2.1
# 包信息 https://pub.dev/packages/package_info_plus
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论