mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
feat: 动态瀑布流横屏支持
This commit is contained in:
@@ -6,6 +6,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter/rendering.dart';
|
import 'package:flutter/rendering.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:hive/hive.dart';
|
import 'package:hive/hive.dart';
|
||||||
|
import 'package:waterfall_flow/waterfall_flow.dart';
|
||||||
import 'package:pilipala/common/skeleton/dynamic_card.dart';
|
import 'package:pilipala/common/skeleton/dynamic_card.dart';
|
||||||
import 'package:pilipala/common/widgets/http_error.dart';
|
import 'package:pilipala/common/widgets/http_error.dart';
|
||||||
import 'package:pilipala/common/widgets/no_data.dart';
|
import 'package:pilipala/common/widgets/no_data.dart';
|
||||||
@@ -14,6 +15,8 @@ import 'package:pilipala/pages/main/index.dart';
|
|||||||
import 'package:pilipala/utils/feed_back.dart';
|
import 'package:pilipala/utils/feed_back.dart';
|
||||||
import 'package:pilipala/utils/storage.dart';
|
import 'package:pilipala/utils/storage.dart';
|
||||||
|
|
||||||
|
import '../../common/constants.dart';
|
||||||
|
import '../../utils/grid.dart';
|
||||||
import 'controller.dart';
|
import 'controller.dart';
|
||||||
import 'widgets/dynamic_panel.dart';
|
import 'widgets/dynamic_panel.dart';
|
||||||
import 'widgets/up_panel.dart';
|
import 'widgets/up_panel.dart';
|
||||||
@@ -269,14 +272,28 @@ class _DynamicsPageState extends State<DynamicsPage>
|
|||||||
return const NoData();
|
return const NoData();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return SliverList(
|
return SliverWaterfallFlow.extent(
|
||||||
delegate: SliverChildBuilderDelegate(
|
maxCrossAxisExtent: Grid.maxRowWidth * 2,
|
||||||
(context, index) {
|
//cacheExtent: 0.0,
|
||||||
return DynamicPanel(item: list[index]);
|
crossAxisSpacing: StyleString.safeSpace,
|
||||||
},
|
mainAxisSpacing: StyleString.safeSpace,
|
||||||
childCount: list.length,
|
|
||||||
),
|
/// follow max child trailing layout offset and layout with full cross axis extend
|
||||||
);
|
/// last child as loadmore item/no more item in [GridView] and [WaterfallFlow]
|
||||||
|
/// with full cross axis extend
|
||||||
|
// LastChildLayoutType.fullCrossAxisExtend,
|
||||||
|
|
||||||
|
/// as foot at trailing and layout with full cross axis extend
|
||||||
|
/// show no more item at trailing when children are not full of viewport
|
||||||
|
/// if children is full of viewport, it's the same as fullCrossAxisExtend
|
||||||
|
// LastChildLayoutType.foot,
|
||||||
|
lastChildLayoutTypeBuilder: (index) =>
|
||||||
|
index == list.length
|
||||||
|
? LastChildLayoutType.foot
|
||||||
|
: LastChildLayoutType.none,
|
||||||
|
children: [
|
||||||
|
for (var i in list) DynamicPanel(item: i),
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1597,7 +1597,7 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.0"
|
version: "1.1.0"
|
||||||
waterfall_flow:
|
waterfall_flow:
|
||||||
dependency: transitive
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: waterfall_flow
|
name: waterfall_flow
|
||||||
sha256: "11538b0d890458e55e6248b177732495d20893cfc7e85d7e8dbf4fdce61c9f10"
|
sha256: "11538b0d890458e55e6248b177732495d20893cfc7e85d7e8dbf4fdce61c9f10"
|
||||||
|
|||||||
@@ -140,6 +140,8 @@ dependencies:
|
|||||||
catcher_2: ^1.1.0
|
catcher_2: ^1.1.0
|
||||||
logger: ^2.0.2+1
|
logger: ^2.0.2+1
|
||||||
path: 1.8.3
|
path: 1.8.3
|
||||||
|
#瀑布流
|
||||||
|
waterfall_flow: ^3.0.3
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|||||||
Reference in New Issue
Block a user