fix(recommend): 精简底部信息并优化进度拖动
This commit is contained in:
1 parent
ccda41b15b
commit
d66ac8327e
16 files changed
+141
-163
No files matched your search
@@ -28,12 +28,14 @@ class RecommendPage extends StatefulWidget {
|
||||
required this.active,
|
||||
required this.onSearch,
|
||||
required this.onOpenFilter,
|
||||
required this.onScrubVisibilityChanged,
|
||||
});
|
||||
|
||||
final HomeFeedController feedController;
|
||||
final bool active;
|
||||
final VoidCallback onSearch;
|
||||
final VoidCallback onOpenFilter;
|
||||
final ValueChanged<bool> onScrubVisibilityChanged;
|
||||
|
||||
@override
|
||||
State<RecommendPage> createState() => _RecommendPageState();
|
||||
@@ -41,6 +43,7 @@ class RecommendPage extends StatefulWidget {
|
||||
|
||||
class _RecommendPageState extends State<RecommendPage> {
|
||||
RecommendInnerTab _tab = RecommendInnerTab.feed;
|
||||
bool _scrubbing = false;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@@ -77,20 +80,21 @@ class _RecommendPageState extends State<RecommendPage> {
|
||||
),
|
||||
),
|
||||
),
|
||||
Positioned(
|
||||
top: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
child: SafeArea(
|
||||
bottom: false,
|
||||
child: RecommendTopNav(
|
||||
selected: _tab,
|
||||
onVideo: _tab == RecommendInnerTab.feed,
|
||||
onSelected: (tab) => setState(() => _tab = tab),
|
||||
onSearch: widget.onSearch,
|
||||
if (!_scrubbing)
|
||||
Positioned(
|
||||
top: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
child: SafeArea(
|
||||
bottom: false,
|
||||
child: RecommendTopNav(
|
||||
selected: _tab,
|
||||
onVideo: _tab == RecommendInnerTab.feed,
|
||||
onSelected: (tab) => setState(() => _tab = tab),
|
||||
onSearch: widget.onSearch,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
@@ -136,9 +140,16 @@ class _RecommendPageState extends State<RecommendPage> {
|
||||
_openDrama(drama, episodeId: episode.id),
|
||||
onRefreshFeed: widget.feedController.refreshCurrent,
|
||||
onLoadMore: widget.feedController.loadMore,
|
||||
onScrubVisibilityChanged: _setScrubbing,
|
||||
);
|
||||
}
|
||||
|
||||
void _setScrubbing(bool value) {
|
||||
if (_scrubbing == value) return;
|
||||
setState(() => _scrubbing = value);
|
||||
widget.onScrubVisibilityChanged(value);
|
||||
}
|
||||
|
||||
Widget _withTopNavSpace(Widget child) {
|
||||
return SafeArea(
|
||||
bottom: false,
|
||||
|
||||
Reference in new issue
Block a user