Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
F
flutter_clx_base
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
openSourceLibrary
flutter_clx_base
Commits
4e70f681
提交
4e70f681
authored
7月 20, 2023
作者:
shixiaochen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、增加方法assetImageExist(检查本地资源文件是否存在);2、优化BaseListWidget(①增加状态-加载中、加载成功、加载失败②列表获取错误toast③设置空省图);
上级
21b2e786
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
31 行增加
和
10 行删除
+31
-10
image_utils.dart
lib/utils/image_utils.dart
+11
-1
base_list_widget.dart
lib/widget/base_list_widget.dart
+20
-9
没有找到文件。
lib/utils/image_utils.dart
浏览文件 @
4e70f681
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter/services.dart'
;
import
'package:flutter/widgets.dart'
;
import
'package:flutter/widgets.dart'
;
class
ImageUtils
{
class
ImageUtils
{
...
@@ -19,5 +20,14 @@ class ImageUtils {
...
@@ -19,5 +20,14 @@ class ImageUtils {
static
String
getSVGPath
(
String
name
,
{
String
format
=
'svg'
})
{
static
String
getSVGPath
(
String
name
,
{
String
format
=
'svg'
})
{
return
'assets/images/
$name
.
$format
'
;
return
'assets/images/
$name
.
$format
'
;
}
}
}
static
Future
<
bool
>
assetImageExist
(
String
?
name
,
{
String
format
=
'png'
})
async
{
try
{
await
rootBundle
.
load
(
getImgPath
(
name
,
format:
format
));
return
true
;
}
catch
(
e
)
{
return
false
;
}
}
}
lib/widget/base_list_widget.dart
浏览文件 @
4e70f681
import
'package:easy_refresh/easy_refresh.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter/material.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_spinkit/flutter_spinkit.dart'
;
import
'package:flutter_spinkit/flutter_spinkit.dart'
;
export
'package:easy_refresh/easy_refresh.dart'
;
export
'package:easy_refresh/easy_refresh.dart'
;
...
@@ -49,6 +49,9 @@ class _BaseListWidgetState extends State<BaseListWidget> {
...
@@ -49,6 +49,9 @@ class _BaseListWidgetState extends State<BaseListWidget> {
final
List
<
dynamic
>
_dataList
=
[];
final
List
<
dynamic
>
_dataList
=
[];
int
_page
=
1
;
int
_page
=
1
;
int
_count
=
0
;
int
_count
=
0
;
bool
startLoadingFinish
=
false
;
// 首次进入loading加载完成标识
StateType
stateType
=
StateType
.
loading
;
// 列表状态
@override
@override
void
initState
()
{
void
initState
()
{
super
.
initState
();
super
.
initState
();
...
@@ -72,6 +75,7 @@ class _BaseListWidgetState extends State<BaseListWidget> {
...
@@ -72,6 +75,7 @@ class _BaseListWidgetState extends State<BaseListWidget> {
builder:
(
ctx
,
state
)
{
builder:
(
ctx
,
state
)
{
if
(
state
.
mode
==
IndicatorMode
.
inactive
||
if
(
state
.
mode
==
IndicatorMode
.
inactive
||
state
.
mode
==
IndicatorMode
.
done
)
{
state
.
mode
==
IndicatorMode
.
done
)
{
startLoadingFinish
=
true
;
return
const
SizedBox
();
return
const
SizedBox
();
}
}
return
Container
(
return
Container
(
...
@@ -87,7 +91,7 @@ class _BaseListWidgetState extends State<BaseListWidget> {
...
@@ -87,7 +91,7 @@ class _BaseListWidgetState extends State<BaseListWidget> {
},
},
),
),
onRefresh:
_onRefresh
,
onRefresh:
_onRefresh
,
onLoad:
widget
.
noMoreLoad
?
null
:
_onLoad
,
onLoad:
widget
.
noMoreLoad
?
null
:
_onLoad
,
child:
buildScrollView
(),
child:
buildScrollView
(),
);
);
}
}
...
@@ -99,12 +103,14 @@ class _BaseListWidgetState extends State<BaseListWidget> {
...
@@ -99,12 +103,14 @@ class _BaseListWidgetState extends State<BaseListWidget> {
}
}
Future
<
void
>
_onRefresh
()
async
{
Future
<
void
>
_onRefresh
()
async
{
stateType
=
StateType
.
loading
;
_page
=
1
;
_page
=
1
;
await
widget
.
requestData
(
await
widget
.
requestData
(
_page
,
widget
.
pageSize
,
_requestSuccess
,
_requestError
);
_page
,
widget
.
pageSize
,
_requestSuccess
,
_requestError
);
}
}
Future
<
void
>
_onLoad
()
async
{
Future
<
void
>
_onLoad
()
async
{
stateType
=
StateType
.
loading
;
_page
++;
_page
++;
await
widget
.
requestData
(
await
widget
.
requestData
(
_page
,
widget
.
pageSize
,
_requestSuccess
,
_requestError
);
_page
,
widget
.
pageSize
,
_requestSuccess
,
_requestError
);
...
@@ -132,12 +138,15 @@ class _BaseListWidgetState extends State<BaseListWidget> {
...
@@ -132,12 +138,15 @@ class _BaseListWidgetState extends State<BaseListWidget> {
?
IndicatorResult
.
noMore
?
IndicatorResult
.
noMore
:
IndicatorResult
.
success
);
:
IndicatorResult
.
success
);
}
}
stateType
=
isEmpty
?
StateType
.
empty
:
StateType
.
success
;
}
}
void
_requestError
(
r
,
s
)
{
void
_requestError
(
code
,
msg
)
{
if
(!
mounted
)
{
if
(!
mounted
)
{
return
;
return
;
}
}
stateType
=
StateType
.
error
;
ToastUtil
.
showToast
(
msg
);
if
(
_page
==
1
)
{
if
(
_page
==
1
)
{
_controller
.
finishRefresh
();
_controller
.
finishRefresh
();
}
else
{
}
else
{
...
@@ -191,18 +200,20 @@ class _BaseListWidgetState extends State<BaseListWidget> {
...
@@ -191,18 +200,20 @@ class _BaseListWidgetState extends State<BaseListWidget> {
List
<
Widget
>
buildSlivers
()
{
List
<
Widget
>
buildSlivers
()
{
final
header
=
buildHeader
();
final
header
=
buildHeader
();
final
footer
=
buildFooter
();
final
footer
=
buildFooter
();
Widget
?
emptyWidget
;
if
(
isEmpty
)
{
emptyWidget
=
widget
.
emptyWidget
;
}
return
[
return
[
if
(
header
.
position
==
IndicatorPosition
.
locator
)
if
(
header
.
position
==
IndicatorPosition
.
locator
)
const
HeaderLocator
.
sliver
(),
const
HeaderLocator
.
sliver
(),
if
(
emptyWidget
!=
null
)
if
(
isEmpty
&&
startLoadingFinish
)
SliverFillViewport
(
SliverFillViewport
(
delegate:
SliverChildBuilderDelegate
(
delegate:
SliverChildBuilderDelegate
(
(
context
,
index
)
{
(
context
,
index
)
{
return
emptyWidget
;
return
widget
.
emptyWidget
??
StateLayout
(
type:
stateType
,
emptyImg:
"default_drawing_1"
,
errorImg:
"default_drawing_5"
,
onRefresh:
_controller
.
reload
,
);
},
},
childCount:
1
,
childCount:
1
,
),
),
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论