Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
F
flutter_clx_base
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
openSourceLibrary
flutter_clx_base
Commits
911eb6be
提交
911eb6be
authored
7月 21, 2023
作者:
shixiaochen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、优化BaseListWidget(增加刷新单个item方法);
上级
4f317103
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
59 行增加
和
25 行删除
+59
-25
base_list_widget_test.dart
example/lib/sample/base_list_widget_test.dart
+36
-22
base_list_widget.dart
lib/widget/base_list_widget.dart
+23
-3
没有找到文件。
example/lib/sample/base_list_widget_test.dart
浏览文件 @
911eb6be
import
'package:flutter/material.dart'
;
import
'package:flutter_clx_base/flutter_clx_base.dart'
;
import
'package:flutter_clx_base/widget/base_list_widget.dart'
;
import
'package:flutter_clx_base_example/sample/skeleton_item.dart'
;
// import 'package:rive/rive.dart';
class
BaseListWidgetTest
extends
StatefulWidget
{
...
...
@@ -12,45 +11,60 @@ class BaseListWidgetTest extends StatefulWidget {
}
class
_BaseListWidgetTestState
extends
State
<
BaseListWidgetTest
>
{
var
controller
=
BaseListController
();
@override
Widget
build
(
BuildContext
context
)
{
final
themeData
=
Theme
.
of
(
context
);
return
MyScaffold
(
title:
'BaseListWidget'
,
body:
BaseListWidget
(
controller:
controller
,
requestData:
(
page
,
pageSize
,
success
,
error
)
async
{
await
Future
.
delayed
(
const
Duration
(
seconds:
5
));
if
(
page
==
1
)
{
success
([
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'10'
,
{
"key"
:
"1"
,
"value"
:
"1"
}
,
{
"key"
:
"2"
,
"value"
:
'2'
}
,
{
"key"
:
"3"
,
"value"
:
'3'
}
,
{
"key"
:
"4"
,
"value"
:
'4'
}
,
{
"key"
:
"5"
,
"value"
:
'5'
}
,
{
"key"
:
"6"
,
"value"
:
'6'
}
,
{
"key"
:
"7"
,
"value"
:
'7'
}
,
{
"key"
:
"8"
,
"value"
:
'8'
}
,
{
"key"
:
"9"
,
"value"
:
'9'
}
,
{
"key"
:
"10"
,
"value"
:
'10'
}
,
]);
}
else
{
success
([
'11'
,
'12'
,
'13'
,
'14'
,
'15'
,
'16'
,
'17'
,
'18'
,
'19'
,
'20'
,
{
"key"
:
"11"
,
"value"
:
"11"
}
,
{
"key"
:
"12"
,
"value"
:
'12'
}
,
{
"key"
:
"13"
,
"value"
:
'13'
}
,
{
"key"
:
"14"
,
"value"
:
'14'
}
,
{
"key"
:
"15"
,
"value"
:
'15'
}
,
{
"key"
:
"16"
,
"value"
:
'16'
}
,
{
"key"
:
"17"
,
"value"
:
'17'
}
,
{
"key"
:
"18"
,
"value"
:
'18'
}
,
{
"key"
:
"19"
,
"value"
:
'19'
}
,
{
"key"
:
"20"
,
"value"
:
'20'
}
,
]);
}
},
pageSize:
10
,
itemBuilder:
(
context
,
index
,
item
)
{
return
const
SkeletonItem
();
return
InkWell
(
onTap:
()
{
item
[
"value"
]
=
"修改item
${index + 1}
"
;
controller
.
notifySingleItem
(
index
,
item
);
},
child:
Container
(
height:
150.0
,
color:
Colors
.
white
,
margin:
const
EdgeInsets
.
only
(
top:
10.0
),
alignment:
Alignment
.
center
,
child:
Text
(
item
[
"value"
]),
),
);
},
header:
TaurusHeader
(
skyColor:
themeData
.
colorScheme
.
primary
,
...
...
lib/widget/base_list_widget.dart
浏览文件 @
911eb6be
...
...
@@ -58,6 +58,7 @@ class _BaseListWidgetState extends State<BaseListWidget> {
void
initState
()
{
super
.
initState
();
_controller
=
widget
.
controller
??
BaseListController
();
_controller
.
_bind
(
this
);
// 绑定 BaseListWidget state
}
@override
...
...
@@ -136,7 +137,7 @@ class _BaseListWidgetState extends State<BaseListWidget> {
_dataList
.
addAll
(
result
!);
_count
=
_dataList
.
length
;
});
_controller
.
c
.
finishLoad
(
result
.
length
<
widget
.
pageSize
_controller
.
finishLoad
(
result
.
length
<
widget
.
pageSize
?
IndicatorResult
.
noMore
:
IndicatorResult
.
success
);
}
...
...
@@ -210,6 +211,14 @@ class _BaseListWidgetState extends State<BaseListWidget> {
return
_dataList
[
index
];
}
// 刷新单个数据
void
notifySingleItem
(
index
,
item
)
{
_dataList
[
index
]
=
item
;
if
(
mounted
)
{
setState
(()
{});
}
}
List
<
Widget
>
buildSlivers
()
{
final
header
=
buildHeader
();
final
footer
=
buildFooter
();
...
...
@@ -258,6 +267,12 @@ class _BaseListWidgetState extends State<BaseListWidget> {
// 列表控制器
class
BaseListController
{
late
EasyRefreshController
_controller
;
_BaseListWidgetState
?
_listState
;
// listState
/// Binding with BaseListWidget state
void
_bind
(
_BaseListWidgetState
state
)
{
_listState
=
state
;
}
BaseListController
()
{
_controller
=
EasyRefreshController
(
...
...
@@ -270,8 +285,8 @@ class BaseListController {
_controller
.
finishRefresh
();
}
void
finishLoad
()
{
_controller
.
finishLoad
();
void
finishLoad
(
[
IndicatorResult
result
=
IndicatorResult
.
success
]
)
{
_controller
.
finishLoad
(
result
);
}
void
resetFooter
()
{
...
...
@@ -283,6 +298,11 @@ class BaseListController {
_controller
.
callRefresh
();
}
// 刷新单个数据
void
notifySingleItem
(
index
,
item
)
{
_listState
?.
notifySingleItem
(
index
,
item
);
}
get
c
=>
_controller
;
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论