Merge pull request #366 from orz12/fix-liveroom&statusBar-when-fullscreen
修复非异形屏全屏与直播间全屏
This commit is contained in:
@ -54,62 +54,83 @@ class _LiveRoomPageState extends State<LiveRoomPage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
Widget childWhenDisabled = Scaffold(
|
Widget childWhenDisabled = Scaffold(
|
||||||
primary: true,
|
primary: true,
|
||||||
appBar: AppBar(
|
appBar: PreferredSize(
|
||||||
centerTitle: false,
|
preferredSize: Size.fromHeight(
|
||||||
titleSpacing: 0,
|
MediaQuery.of(context).orientation == Orientation.portrait ? 56 : 0,
|
||||||
title: _liveRoomController.liveItem != null
|
),
|
||||||
? Row(
|
child: AppBar(
|
||||||
children: [
|
centerTitle: false,
|
||||||
NetworkImgLayer(
|
titleSpacing: 0,
|
||||||
width: 34,
|
title: _liveRoomController.liveItem != null
|
||||||
height: 34,
|
? Row(
|
||||||
type: 'avatar',
|
children: [
|
||||||
src: _liveRoomController.liveItem.face,
|
NetworkImgLayer(
|
||||||
),
|
width: 34,
|
||||||
const SizedBox(width: 10),
|
height: 34,
|
||||||
Column(
|
type: 'avatar',
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
src: _liveRoomController.liveItem.face,
|
||||||
children: [
|
),
|
||||||
Text(
|
const SizedBox(width: 10),
|
||||||
_liveRoomController.liveItem.uname,
|
Column(
|
||||||
style: const TextStyle(fontSize: 14),
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
),
|
children: [
|
||||||
const SizedBox(height: 1),
|
|
||||||
if (_liveRoomController.liveItem.watchedShow != null)
|
|
||||||
Text(
|
Text(
|
||||||
_liveRoomController
|
_liveRoomController.liveItem.uname,
|
||||||
.liveItem.watchedShow['text_large'] ??
|
style: const TextStyle(fontSize: 14),
|
||||||
'',
|
),
|
||||||
style: const TextStyle(fontSize: 12)),
|
const SizedBox(height: 1),
|
||||||
],
|
if (_liveRoomController.liveItem.watchedShow != null)
|
||||||
),
|
Text(
|
||||||
],
|
_liveRoomController
|
||||||
)
|
.liveItem.watchedShow['text_large'] ??
|
||||||
: const SizedBox(),
|
'',
|
||||||
// actions: [
|
style: const TextStyle(fontSize: 12)),
|
||||||
// SizedBox(
|
],
|
||||||
// height: 34,
|
),
|
||||||
// child: ElevatedButton(onPressed: () {}, child: const Text('关注')),
|
],
|
||||||
// ),
|
)
|
||||||
// const SizedBox(width: 12),
|
: const SizedBox(),
|
||||||
// ],
|
// actions: [
|
||||||
|
// SizedBox(
|
||||||
|
// height: 34,
|
||||||
|
// child: ElevatedButton(onPressed: () {}, child: const Text('关注')),
|
||||||
|
// ),
|
||||||
|
// const SizedBox(width: 12),
|
||||||
|
// ],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
Stack(
|
Stack(
|
||||||
children: [
|
children: [
|
||||||
AspectRatio(
|
PopScope(
|
||||||
aspectRatio: 16 / 9,
|
canPop: plPlayerController?.isFullScreen.value != true,
|
||||||
child: plPlayerController!.videoPlayerController != null
|
onPopInvoked: (bool didPop) {
|
||||||
? PLVideoPlayer(
|
if (plPlayerController?.isFullScreen.value == true) {
|
||||||
controller: plPlayerController!,
|
plPlayerController!.triggerFullScreen(status: false);
|
||||||
bottomControl: BottomControl(
|
}
|
||||||
controller: plPlayerController,
|
if (MediaQuery.of(context).orientation ==
|
||||||
liveRoomCtr: _liveRoomController,
|
Orientation.landscape) {
|
||||||
floating: floating,
|
verticalScreen();
|
||||||
),
|
}
|
||||||
)
|
},
|
||||||
: const SizedBox(),
|
child: SizedBox(
|
||||||
|
width: Get.size.width,
|
||||||
|
height: MediaQuery.of(context).orientation ==
|
||||||
|
Orientation.landscape
|
||||||
|
? Get.size.height
|
||||||
|
: Get.size.width * 9 / 16,
|
||||||
|
child: plPlayerController!.videoPlayerController != null
|
||||||
|
? PLVideoPlayer(
|
||||||
|
controller: plPlayerController!,
|
||||||
|
bottomControl: BottomControl(
|
||||||
|
controller: plPlayerController,
|
||||||
|
liveRoomCtr: _liveRoomController,
|
||||||
|
floating: floating,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: const SizedBox(),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
// if (_liveRoomController.liveItem != null &&
|
// if (_liveRoomController.liveItem != null &&
|
||||||
// _liveRoomController.liveItem.cover != null)
|
// _liveRoomController.liveItem.cover != null)
|
||||||
|
|||||||
@ -243,7 +243,8 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
|||||||
exitFullScreen();
|
exitFullScreen();
|
||||||
}
|
}
|
||||||
Widget childWhenDisabled = SafeArea(
|
Widget childWhenDisabled = SafeArea(
|
||||||
top: MediaQuery.of(context).orientation == Orientation.portrait,
|
top: MediaQuery.of(context).orientation == Orientation.portrait &&
|
||||||
|
plPlayerController?.isFullScreen.value == true,
|
||||||
bottom: MediaQuery.of(context).orientation == Orientation.portrait &&
|
bottom: MediaQuery.of(context).orientation == Orientation.portrait &&
|
||||||
plPlayerController?.isFullScreen.value == true,
|
plPlayerController?.isFullScreen.value == true,
|
||||||
left: plPlayerController?.isFullScreen.value != true,
|
left: plPlayerController?.isFullScreen.value != true,
|
||||||
@ -254,10 +255,17 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
|||||||
resizeToAvoidBottomInset: false,
|
resizeToAvoidBottomInset: false,
|
||||||
key: videoDetailController.scaffoldKey,
|
key: videoDetailController.scaffoldKey,
|
||||||
backgroundColor: Colors.black,
|
backgroundColor: Colors.black,
|
||||||
|
appBar: PreferredSize(
|
||||||
|
preferredSize: const Size.fromHeight(0),
|
||||||
|
child: AppBar(
|
||||||
|
backgroundColor: Theme.of(context).colorScheme.background,
|
||||||
|
elevation: 0,
|
||||||
|
),
|
||||||
|
),
|
||||||
body: ExtendedNestedScrollView(
|
body: ExtendedNestedScrollView(
|
||||||
controller: _extendNestCtr,
|
controller: _extendNestCtr,
|
||||||
headerSliverBuilder:
|
headerSliverBuilder:
|
||||||
(BuildContext context, bool innerBoxIsScrolled) {
|
(BuildContext _context, bool innerBoxIsScrolled) {
|
||||||
return <Widget>[
|
return <Widget>[
|
||||||
Obx(() => SliverAppBar(
|
Obx(() => SliverAppBar(
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
@ -272,7 +280,7 @@ class _VideoDetailPageState extends State<VideoDetailPage>
|
|||||||
(MediaQuery.of(context).orientation ==
|
(MediaQuery.of(context).orientation ==
|
||||||
Orientation.landscape
|
Orientation.landscape
|
||||||
? 0
|
? 0
|
||||||
: statusBarHeight)
|
: MediaQuery.of(context).padding.top)
|
||||||
: videoHeight,
|
: videoHeight,
|
||||||
backgroundColor: Colors.black,
|
backgroundColor: Colors.black,
|
||||||
flexibleSpace: FlexibleSpaceBar(
|
flexibleSpace: FlexibleSpaceBar(
|
||||||
|
|||||||
Reference in New Issue
Block a user