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

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

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