Vaani/lib/pages/player_page.dart

47 lines
1.6 KiB
Dart
Raw Normal View History

import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
2025-12-08 17:54:08 +08:00
import 'package:vaani/features/player/providers/abs_provider.dart';
import 'package:vaani/features/player/view/player_expanded.dart';
import 'package:vaani/features/player/view/player_expanded_desktop.dart';
import 'package:vaani/shared/widgets/not_implemented.dart';
class PlayerPage extends HookConsumerWidget {
const PlayerPage({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
2025-12-01 15:34:12 +08:00
final currentBook = ref.watch(currentBookProvider);
if (currentBook == null) {
return SizedBox.shrink();
}
final size = MediaQuery.of(context).size;
// 竖屏
final isVertical = size.height > size.width;
2025-12-08 17:54:08 +08:00
return Scaffold(
appBar: AppBar(
2026-01-05 17:29:24 +08:00
// 以下两项确保在滚动后背景色不变
// elevation: 0 是保持 AppBar 不变的关键
elevation: 0,
// 设置 forceMaterialTransparency 防止滚动时的透明度变化
forceMaterialTransparency: true,
2025-12-01 15:34:12 +08:00
title: Text(currentBook.metadata.title ?? ''),
leading: IconButton(
iconSize: 30,
icon: const Icon(Icons.keyboard_arrow_down),
onPressed: () => context.pop(),
),
2025-12-08 17:54:08 +08:00
actions: [
IconButton(
icon: const Icon(Icons.cast),
onPressed: () {
showNotImplementedToast(context);
},
),
],
),
2025-12-09 17:26:04 +08:00
body: isVertical ? PlayerExpanded() : PlayerExpandedDesktop(),
);
}
}