@@ -6,7 +6,6 @@ import '../../Api/user_api.dart';
66import '../../Models/history_response.dart' ;
77import '../../Models/post_detail_response.dart' ;
88import '../../Resources/theme.dart' ;
9- import '../../Utils/constant.dart' ;
109import '../../Utils/enums.dart' ;
1110import '../../Utils/hive_util.dart' ;
1211import '../../Utils/ilogger.dart' ;
@@ -41,8 +40,6 @@ class _FavoriteFolderDetailScreenState extends State<FavoriteFolderDetailScreen>
4140 SimpleBlogInfo ? _creatorInfo;
4241 final List <FavoritePostDetailData > _posts = [];
4342 final List <ArchiveData > _archiveDataList = [];
44- final FavoriteFolderDetailLayoutMode _layoutMode =
45- FavoriteFolderDetailLayoutMode .nineGrid;
4643 bool _loading = false ;
4744 final EasyRefreshController _refreshController = EasyRefreshController ();
4845 bool _noMore = false ;
@@ -129,29 +126,26 @@ class _FavoriteFolderDetailScreenState extends State<FavoriteFolderDetailScreen>
129126 return Scaffold (
130127 backgroundColor: MyTheme .getBackground (context),
131128 appBar: _buildAppBar (),
132- body: EasyRefresh (
129+ body: EasyRefresh . builder (
133130 refreshOnStart: true ,
134131 controller: _refreshController,
135132 onRefresh: _onRefresh,
136133 onLoad: _onLoad,
137134 triggerAxis: Axis .vertical,
138- child: _buildBody (),
135+ childBuilder: (context, physics) =>
136+ _archiveDataList.isNotEmpty && _posts.isNotEmpty
137+ ? _buildNineGridGroup (physics)
138+ : ItemBuilder .buildEmptyPlaceholder (
139+ context: context,
140+ text: S .current.noFavorite,
141+ physics: physics,
142+ shrinkWrap: false ,
143+ ),
139144 ),
140145 );
141146 }
142147
143- Widget _buildBody () {
144- switch (_layoutMode) {
145- case FavoriteFolderDetailLayoutMode .list:
146- return _buildList ();
147- case FavoriteFolderDetailLayoutMode .nineGrid:
148- return _buildNineGridGroup ();
149- case FavoriteFolderDetailLayoutMode .flow:
150- return _buildFlow ();
151- }
152- }
153-
154- Widget _buildNineGridGroup () {
148+ Widget _buildNineGridGroup (ScrollPhysics physics) {
155149 List <Widget > widgets = [];
156150 int startIndex = 0 ;
157151 for (var e in _archiveDataList) {
@@ -174,6 +168,7 @@ class _FavoriteFolderDetailScreenState extends State<FavoriteFolderDetailScreen>
174168 }
175169 return ListView (
176170 cacheExtent: 9999 ,
171+ physics: physics,
177172 children: widgets,
178173 );
179174 }
@@ -216,49 +211,11 @@ class _FavoriteFolderDetailScreenState extends State<FavoriteFolderDetailScreen>
216211 );
217212 }
218213
219- Widget _buildFlow () {
220- return emptyWidget;
221- }
222-
223- Widget _buildList () {
224- return emptyWidget;
225- }
226-
227214 PreferredSizeWidget _buildAppBar () {
228- IconData icon = Icons .transform_rounded;
229- switch (_layoutMode) {
230- case FavoriteFolderDetailLayoutMode .list:
231- icon = Icons .list_rounded;
232- break ;
233- case FavoriteFolderDetailLayoutMode .nineGrid:
234- icon = Icons .grid_on_rounded;
235- break ;
236- case FavoriteFolderDetailLayoutMode .flow:
237- icon = Icons .article_outlined;
238- break ;
239- }
240215 return ItemBuilder .buildResponsiveAppBar (
241216 context: context,
242217 showBack: true ,
243218 title: _favoriteFolder? .name ?? S .current.favoriteFolderDetail,
244- actions: [
245- // ItemBuilder.buildIconButton(
246- // context: context,
247- // icon: Icon(icon, color: Theme.of(context).iconTheme.color),
248- // onTap: () {
249- // _layoutMode = FavoriteFolderDetailLayoutMode.values[
250- // (_layoutMode.index + 1) %
251- // FavoriteFolderDetailLayoutMode.values.length];
252- // setState(() {});
253- // }),
254- // const SizedBox(width: 5),
255- // ItemBuilder.buildIconButton(
256- // context: context,
257- // icon: Icon(Icons.more_vert_rounded,
258- // color: Theme.of(context).iconTheme.color),
259- // onTap: () {}),
260- const SizedBox (width: 5 ),
261- ],
262219 );
263220 }
264221}
0 commit comments