diff --git a/lib/pages/video/detail/contact/view.dart b/lib/pages/contact/view.dart similarity index 96% rename from lib/pages/video/detail/contact/view.dart rename to lib/pages/contact/view.dart index c4dc00826..a2b9167ea 100644 --- a/lib/pages/video/detail/contact/view.dart +++ b/lib/pages/contact/view.dart @@ -2,7 +2,7 @@ import 'package:PiliPlus/common/widgets/scroll_physics.dart'; import 'package:PiliPlus/pages/fan/index.dart'; import 'package:PiliPlus/pages/follow/child_view.dart'; import 'package:PiliPlus/pages/follow_search/view.dart'; -import 'package:PiliPlus/pages/video/detail/share/view.dart' show UserModel; +import 'package:PiliPlus/pages/share/view.dart' show UserModel; import 'package:PiliPlus/utils/storage.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; diff --git a/lib/pages/fan/view.dart b/lib/pages/fan/view.dart index e12b85905..177cefaad 100644 --- a/lib/pages/fan/view.dart +++ b/lib/pages/fan/view.dart @@ -4,7 +4,7 @@ import 'package:PiliPlus/common/widgets/network_img_layer.dart'; import 'package:PiliPlus/common/widgets/refresh_indicator.dart'; import 'package:PiliPlus/http/loading_state.dart'; import 'package:PiliPlus/models/fans/result.dart'; -import 'package:PiliPlus/pages/video/detail/share/view.dart' show UserModel; +import 'package:PiliPlus/pages/share/view.dart' show UserModel; import 'package:PiliPlus/utils/storage.dart'; import 'package:PiliPlus/utils/utils.dart'; import 'package:flutter/material.dart'; diff --git a/lib/pages/follow/child_view.dart b/lib/pages/follow/child_view.dart index 912b047b9..9153bc289 100644 --- a/lib/pages/follow/child_view.dart +++ b/lib/pages/follow/child_view.dart @@ -6,7 +6,7 @@ import 'package:PiliPlus/models/follow/result.dart'; import 'package:PiliPlus/pages/follow/child_controller.dart'; import 'package:PiliPlus/pages/follow/controller.dart'; import 'package:PiliPlus/pages/follow/widgets/follow_item.dart'; -import 'package:PiliPlus/pages/video/detail/share/view.dart' show UserModel; +import 'package:PiliPlus/pages/share/view.dart' show UserModel; import 'package:PiliPlus/utils/utils.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; diff --git a/lib/pages/follow/widgets/follow_item.dart b/lib/pages/follow/widgets/follow_item.dart index 9d0dac9a6..8a26a5faa 100644 --- a/lib/pages/follow/widgets/follow_item.dart +++ b/lib/pages/follow/widgets/follow_item.dart @@ -1,4 +1,4 @@ -import 'package:PiliPlus/pages/video/detail/share/view.dart' show UserModel; +import 'package:PiliPlus/pages/share/view.dart' show UserModel; import 'package:PiliPlus/utils/request_utils.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; diff --git a/lib/pages/video/detail/share/view.dart b/lib/pages/share/view.dart similarity index 74% rename from lib/pages/video/detail/share/view.dart rename to lib/pages/share/view.dart index 47674c69f..7aa8e8339 100644 --- a/lib/pages/video/detail/share/view.dart +++ b/lib/pages/share/view.dart @@ -1,7 +1,7 @@ import 'package:PiliPlus/common/widgets/icon_button.dart'; import 'package:PiliPlus/common/widgets/network_img_layer.dart'; import 'package:PiliPlus/common/widgets/self_sized_horizontal_list.dart'; -import 'package:PiliPlus/pages/video/detail/contact/view.dart'; +import 'package:PiliPlus/pages/contact/view.dart'; import 'package:PiliPlus/utils/extension.dart'; import 'package:PiliPlus/utils/request_utils.dart'; import 'package:flutter/material.dart'; @@ -76,7 +76,7 @@ class _SharePanelState extends State { return Padding( padding: const EdgeInsets.all(12) + MediaQuery.paddingOf(context) + - MediaQuery.of(context).viewInsets, + MediaQuery.viewInsetsOf(context), child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, @@ -112,37 +112,52 @@ class _SharePanelState extends State { behavior: HitTestBehavior.opaque, child: SizedBox( width: 65, - child: Column( + child: Stack( + clipBehavior: Clip.none, + alignment: Alignment.topCenter, children: [ - Container( - decoration: index == _selectedIndex - ? BoxDecoration( - shape: BoxShape.circle, - border: Border.all( - width: 1.5, - color: Theme.of(context) - .colorScheme - .primary, - ), - ) - : null, - width: 50, - height: 50, - alignment: Alignment.center, - child: NetworkImgLayer( - width: 40, - height: 40, - src: _userList[index].avatar, - type: 'avatar', + Column( + children: [ + Padding( + padding: const EdgeInsets.all(5), + child: NetworkImgLayer( + width: 40, + height: 40, + src: _userList[index].avatar, + type: 'avatar', + ), + ), + const SizedBox(height: 2), + Text( + _userList[index].name, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle(fontSize: 12), + ), + ], + ), + if (index == _selectedIndex) + Container( + width: 50, + height: 50, + decoration: BoxDecoration( + color: Theme.of(context) + .colorScheme + .primary + .withOpacity(0.3), + shape: BoxShape.circle, + border: Border.all( + width: 1.5, + color: + Theme.of(context).colorScheme.primary, + ), + ), + child: Icon( + Icons.check, + size: 20, + color: Colors.white, + ), ), - ), - const SizedBox(height: 2), - Text( - _userList[index].name, - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: TextStyle(fontSize: 12), - ), ], ), ), @@ -207,12 +222,15 @@ class _SharePanelState extends State { child: TextField( controller: _controller, focusNode: _focusNode, + minLines: 1, + maxLines: 2, + textInputAction: TextInputAction.newline, decoration: InputDecoration( hintText: '说说你的想法吧...', hintStyle: const TextStyle(fontSize: 14), border: OutlineInputBorder( borderSide: BorderSide.none, - borderRadius: BorderRadius.circular(25), + borderRadius: BorderRadius.circular(20), ), filled: true, isDense: true, diff --git a/lib/utils/page_utils.dart b/lib/utils/page_utils.dart index 9e57c2092..3a334e89b 100644 --- a/lib/utils/page_utils.dart +++ b/lib/utils/page_utils.dart @@ -8,10 +8,10 @@ import 'package:PiliPlus/models/bangumi/info.dart'; import 'package:PiliPlus/models/common/search_type.dart'; import 'package:PiliPlus/models/dynamics/result.dart'; import 'package:PiliPlus/models/live/item.dart'; -import 'package:PiliPlus/pages/video/detail/contact/view.dart'; +import 'package:PiliPlus/pages/contact/view.dart'; import 'package:PiliPlus/pages/video/detail/introduction/widgets/fav_panel.dart'; import 'package:PiliPlus/pages/video/detail/introduction/widgets/menu_row.dart'; -import 'package:PiliPlus/pages/video/detail/share/view.dart'; +import 'package:PiliPlus/pages/share/view.dart'; import 'package:PiliPlus/services/shutdown_timer_service.dart'; import 'package:PiliPlus/utils/app_scheme.dart'; import 'package:PiliPlus/utils/extension.dart';