mod: 操作组件调小;横屏番剧操作优化

This commit is contained in:
orz12
2024-03-22 00:56:02 +08:00
parent 3b6068fced
commit 9891aeeb34
4 changed files with 25 additions and 19 deletions

View File

@@ -174,9 +174,13 @@ class _BangumiInfoState extends State<BangumiInfo> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final ThemeData t = Theme.of(context); final ThemeData t = Theme.of(context);
bool isLandscape =
MediaQuery.of(context).orientation == Orientation.landscape;
return SliverPadding( return SliverPadding(
padding: const EdgeInsets.only( padding: EdgeInsets.only(
left: StyleString.safeSpace, right: StyleString.safeSpace, top: 20), left: StyleString.safeSpace,
right: StyleString.safeSpace,
top: isLandscape ? 10 : 20),
sliver: SliverToBoxAdapter( sliver: SliverToBoxAdapter(
child: !widget.loadingStatus || bangumiItem != null child: !widget.loadingStatus || bangumiItem != null
? Column( ? Column(
@@ -188,8 +192,8 @@ class _BangumiInfoState extends State<BangumiInfo> {
Stack( Stack(
children: [ children: [
NetworkImgLayer( NetworkImgLayer(
width: 105, width: isLandscape ? 160 : 105,
height: 160, height: isLandscape ? 105 : 160,
src: !widget.loadingStatus src: !widget.loadingStatus
? widget.bangumiDetail!.cover! ? widget.bangumiDetail!.cover!
: bangumiItem!.cover!, : bangumiItem!.cover!,
@@ -212,7 +216,7 @@ class _BangumiInfoState extends State<BangumiInfo> {
child: InkWell( child: InkWell(
onTap: () => showIntroDetail(), onTap: () => showIntroDetail(),
child: SizedBox( child: SizedBox(
height: 158, height: isLandscape ? 103 : 158,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
@@ -234,8 +238,8 @@ class _BangumiInfoState extends State<BangumiInfo> {
), ),
const SizedBox(width: 20), const SizedBox(width: 20),
SizedBox( SizedBox(
width: 34, width: 30,
height: 34, height: 30,
child: IconButton( child: IconButton(
tooltip: '收藏', tooltip: '收藏',
style: ButtonStyle( style: ButtonStyle(
@@ -280,7 +284,7 @@ class _BangumiInfoState extends State<BangumiInfo> {
), ),
], ],
), ),
const SizedBox(height: 6), SizedBox(height: isLandscape ? 2 : 6),
Row( Row(
children: [ children: [
Text( Text(
@@ -327,7 +331,7 @@ class _BangumiInfoState extends State<BangumiInfo> {
const Spacer(), const Spacer(),
Text( Text(
'简介:${!widget.loadingStatus ? widget.bangumiDetail!.evaluate! : bangumiItem!.evaluate!}', '简介:${!widget.loadingStatus ? widget.bangumiDetail!.evaluate! : bangumiItem!.evaluate!}',
maxLines: 3, maxLines: isLandscape ? 1 : 3,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
style: TextStyle( style: TextStyle(
fontSize: 13, fontSize: 13,
@@ -388,9 +392,9 @@ class _BangumiInfoState extends State<BangumiInfo> {
builder: (BuildContext context, BoxConstraints constraints) { builder: (BuildContext context, BoxConstraints constraints) {
return Material( return Material(
child: Padding( child: Padding(
padding: const EdgeInsets.only(top: 16, bottom: 8), padding: const EdgeInsets.only(top: 1),
child: SizedBox( child: SizedBox(
height: constraints.maxWidth / 5 * 0.8, height: 48,
child: GridView.count( child: GridView.count(
primary: false, primary: false,
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
@@ -420,7 +424,8 @@ class _BangumiInfoState extends State<BangumiInfo> {
loadingStatus: false, loadingStatus: false,
semanticsLabel: '投币', semanticsLabel: '投币',
text: !widget.loadingStatus text: !widget.loadingStatus
? Utils.numFormat(widget.bangumiDetail!.stat!['coins']!) ? Utils.numFormat(
widget.bangumiDetail!.stat!['coins']!)
: Utils.numFormat(bangumiItem!.stat!['coins']!)), : Utils.numFormat(bangumiItem!.stat!['coins']!)),
), ),
Obx( Obx(
@@ -432,7 +437,8 @@ class _BangumiInfoState extends State<BangumiInfo> {
loadingStatus: false, loadingStatus: false,
semanticsLabel: '收藏', semanticsLabel: '收藏',
text: !widget.loadingStatus text: !widget.loadingStatus
? Utils.numFormat(widget.bangumiDetail!.stat!['favorite']!) ? Utils.numFormat(
widget.bangumiDetail!.stat!['favorite']!)
: Utils.numFormat(bangumiItem!.stat!['favorite']!)), : Utils.numFormat(bangumiItem!.stat!['favorite']!)),
), ),
ActionItem( ActionItem(

View File

@@ -204,7 +204,7 @@ class _BangumiPanelState extends State<BangumiPanel> {
return Column( return Column(
children: [ children: [
Padding( Padding(
padding: const EdgeInsets.only(top: 10, bottom: 6), padding: const EdgeInsets.only(top: 5, bottom: 3),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [

View File

@@ -396,7 +396,7 @@ class _VideoInfoState extends State<VideoInfo> with TickerProviderStateMixin {
onTap: onPushMember, onTap: onPushMember,
child: Container( child: Container(
padding: const EdgeInsets.symmetric( padding: const EdgeInsets.symmetric(
vertical: 12, horizontal: 4), vertical: 8, horizontal: 4),
child: Row( child: Row(
children: [ children: [
NetworkImgLayer( NetworkImgLayer(
@@ -491,8 +491,8 @@ class _VideoInfoState extends State<VideoInfo> with TickerProviderStateMixin {
return LayoutBuilder( return LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) { builder: (BuildContext context, BoxConstraints constraints) {
return Container( return Container(
margin: const EdgeInsets.only(top: 6, bottom: 4), margin: const EdgeInsets.only(top: 1),
height: constraints.maxWidth / 5 * 0.8, height: 48,
child: GridView.count( child: GridView.count(
primary: false, primary: false,
padding: EdgeInsets.zero, padding: EdgeInsets.zero,

View File

@@ -41,7 +41,7 @@ class ActionItem extends StatelessWidget {
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
const SizedBox(height: 4), // const SizedBox(height: 2),
Icon( Icon(
selectStatus selectStatus
? selectIcon!.icon! ? selectIcon!.icon!
@@ -51,7 +51,7 @@ class ActionItem extends StatelessWidget {
? Theme.of(context).colorScheme.primary ? Theme.of(context).colorScheme.primary
: Theme.of(context).colorScheme.outline, : Theme.of(context).colorScheme.outline,
), ),
const SizedBox(height: 6), const SizedBox(height: 3),
AnimatedOpacity( AnimatedOpacity(
opacity: loadingStatus! ? 0 : 1, opacity: loadingStatus! ? 0 : 1,
duration: const Duration(milliseconds: 200), duration: const Duration(milliseconds: 200),