mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
opt: btn, stack
Closes #775 Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -28,6 +28,7 @@ void imageSaveDialog({
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: SmartDialog.dismiss,
|
||||
|
||||
@@ -138,6 +138,7 @@ Widget imageView(
|
||||
}
|
||||
},
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
ClipRRect(
|
||||
|
||||
@@ -276,6 +276,7 @@ class _InteractiveviewerGalleryState extends State<InteractiveviewerGallery>
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
InteractiveViewerBoundary(
|
||||
controller: _transformationController,
|
||||
@@ -344,6 +345,7 @@ class _InteractiveviewerGalleryState extends State<InteractiveviewerGallery>
|
||||
)
|
||||
: null,
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Align(
|
||||
|
||||
@@ -172,6 +172,7 @@ class _NineGridViewState extends State<NineGridView> {
|
||||
)));
|
||||
}
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: list,
|
||||
);
|
||||
}
|
||||
@@ -260,6 +261,7 @@ class _NineGridViewState extends State<NineGridView> {
|
||||
)));
|
||||
}
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: list,
|
||||
);
|
||||
}
|
||||
@@ -286,6 +288,7 @@ class _NineGridViewState extends State<NineGridView> {
|
||||
}
|
||||
return ClipOval(
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: children,
|
||||
),
|
||||
);
|
||||
@@ -372,7 +375,10 @@ class _NineGridViewState extends State<NineGridView> {
|
||||
children.add(child);
|
||||
}
|
||||
|
||||
return Stack(children: children);
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: children,
|
||||
);
|
||||
}
|
||||
|
||||
/// double is zero.
|
||||
|
||||
@@ -598,6 +598,7 @@ class RefreshIndicatorState extends State<RefreshIndicator>
|
||||
_mode == _RefreshIndicatorMode.done;
|
||||
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: <Widget>[
|
||||
child,
|
||||
if (_mode != null)
|
||||
|
||||
@@ -32,6 +32,7 @@ class VideoCardHGrpc extends StatelessWidget {
|
||||
String type = 'video';
|
||||
final String heroTag = Utils.makeHeroTag(aid);
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Semantics(
|
||||
excludeSemantics: true,
|
||||
@@ -66,6 +67,7 @@ class VideoCardHGrpc extends StatelessWidget {
|
||||
final double maxWidth = boxConstraints.maxWidth;
|
||||
final double maxHeight = boxConstraints.maxHeight;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Hero(
|
||||
tag: heroTag,
|
||||
|
||||
@@ -28,6 +28,7 @@ class VideoCardHMemberVideo extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
InkWell(
|
||||
onLongPress: () => imageSaveDialog(
|
||||
@@ -77,6 +78,7 @@ class VideoCardHMemberVideo extends StatelessWidget {
|
||||
final double maxWidth = boxConstraints.maxWidth;
|
||||
final double maxHeight = boxConstraints.maxHeight;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
NetworkImgLayer(
|
||||
src: videoItem.cover,
|
||||
|
||||
@@ -90,7 +90,9 @@ class VideoCardV extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(children: [
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Semantics(
|
||||
label: Utils.videoItemSemantics(videoItem),
|
||||
excludeSemantics: true,
|
||||
@@ -112,6 +114,7 @@ class VideoCardV extends StatelessWidget {
|
||||
double maxWidth = boxConstraints.maxWidth;
|
||||
double maxHeight = boxConstraints.maxHeight;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
NetworkImgLayer(
|
||||
src: videoItem.pic,
|
||||
@@ -147,7 +150,8 @@ class VideoCardV extends StatelessWidget {
|
||||
onRemove: onRemove,
|
||||
),
|
||||
),
|
||||
]);
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget videoContent(context) {
|
||||
|
||||
@@ -55,6 +55,7 @@ class VideoCardVMemberHome extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Semantics(
|
||||
excludeSemantics: true,
|
||||
@@ -77,6 +78,7 @@ class VideoCardVMemberHome extends StatelessWidget {
|
||||
double maxWidth = boxConstraints.maxWidth;
|
||||
double maxHeight = boxConstraints.maxHeight;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
NetworkImgLayer(
|
||||
src: videoItem.cover,
|
||||
|
||||
@@ -34,6 +34,7 @@ class VideoCustomActions {
|
||||
videoItem.bvid!,
|
||||
'copy',
|
||||
Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Icon(MdiIcons.identifier, size: 16),
|
||||
Icon(MdiIcons.circleOutline, size: 16),
|
||||
|
||||
@@ -232,6 +232,7 @@ class _ArticlePageState extends State<ArticlePage>
|
||||
resizeToAvoidBottomInset: false,
|
||||
appBar: _buildAppBar,
|
||||
body: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
SafeArea(
|
||||
top: false,
|
||||
|
||||
@@ -198,6 +198,7 @@ class _BangumiInfoState extends State<BangumiInfo> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
|
||||
@@ -41,6 +41,7 @@ class BangumiCardV extends StatelessWidget {
|
||||
final double maxWidth = boxConstraints.maxWidth;
|
||||
final double maxHeight = boxConstraints.maxHeight;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Hero(
|
||||
tag: heroTag,
|
||||
|
||||
@@ -46,6 +46,7 @@ class BangumiCardVMemberHome extends StatelessWidget {
|
||||
final double maxWidth = boxConstraints.maxWidth;
|
||||
final double maxHeight = boxConstraints.maxHeight;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Hero(
|
||||
tag: heroTag,
|
||||
|
||||
@@ -38,6 +38,7 @@ class BangumiCardVPgcIndex extends StatelessWidget {
|
||||
final double maxWidth = boxConstraints.maxWidth;
|
||||
final double maxHeight = boxConstraints.maxHeight;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
NetworkImgLayer(
|
||||
src: bangumiItem['cover'],
|
||||
|
||||
@@ -39,6 +39,7 @@ class BangumiCardVSearch extends StatelessWidget {
|
||||
final double maxWidth = boxConstraints.maxWidth;
|
||||
final double maxHeight = boxConstraints.maxHeight;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
NetworkImgLayer(
|
||||
src: item.cover,
|
||||
|
||||
@@ -39,6 +39,7 @@ class BangumiCardVTimeline extends StatelessWidget {
|
||||
final double maxWidth = boxConstraints.maxWidth;
|
||||
final double maxHeight = boxConstraints.maxHeight;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
NetworkImgLayer(
|
||||
src: item.cover,
|
||||
|
||||
@@ -286,6 +286,7 @@ abstract class CommonPublishPageState<T extends CommonPublishPage>
|
||||
}
|
||||
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
|
||||
@@ -135,6 +135,7 @@ class _CreateDynPanelState extends CommonPublishPageState<CreateDynPanel> {
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Align(
|
||||
|
||||
@@ -362,6 +362,7 @@ class _DynamicDetailPageState extends State<DynamicDetailPage>
|
||||
}
|
||||
|
||||
Widget _buildBody(Orientation orientation, ThemeData theme) => Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Builder(
|
||||
builder: (context) {
|
||||
|
||||
@@ -246,6 +246,7 @@ class _RepostPanelState extends CommonPublishPageState<RepostPanel> {
|
||||
height: 34,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Align(
|
||||
|
||||
@@ -65,6 +65,7 @@ class AuthorPanel extends StatelessWidget {
|
||||
: Utils.dateFormat(item.modules.moduleAuthor!.pubTs)
|
||||
: item.modules.moduleAuthor?.pubTime;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Align(
|
||||
@@ -382,6 +383,7 @@ class AuthorPanel extends StatelessWidget {
|
||||
},
|
||||
minLeadingWidth: 0,
|
||||
leading: const Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Icon(Icons.shield_outlined, size: 19),
|
||||
|
||||
@@ -441,6 +441,7 @@ Widget forWard(
|
||||
children: [
|
||||
if (floor == 1) const SizedBox(width: 12),
|
||||
Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Hero(
|
||||
tag: item.modules.moduleDynamic!.major!.medialist!['cover'],
|
||||
|
||||
@@ -79,6 +79,7 @@ Widget liveRcmdPanel(
|
||||
builder: (context, box) {
|
||||
double width = box.maxWidth;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Hero(
|
||||
tag: liveRcmd.roomId.toString(),
|
||||
|
||||
@@ -64,6 +64,7 @@ Widget videoSeasonWidget(
|
||||
builder: (context, box) {
|
||||
double width = box.maxWidth;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
NetworkImgLayer(
|
||||
width: width,
|
||||
|
||||
@@ -114,7 +114,7 @@ class FavArticleItem extends StatelessWidget {
|
||||
),
|
||||
Positioned(
|
||||
right: 12,
|
||||
bottom: 0,
|
||||
bottom: -6,
|
||||
child: iconButton(
|
||||
iconSize: 18,
|
||||
context: context,
|
||||
|
||||
@@ -451,6 +451,7 @@ class _FavDetailPageState extends State<FavDetailPage> {
|
||||
}
|
||||
FavDetailItemData item = loadingState.response![index];
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Positioned.fill(
|
||||
child: FavVideoCardH(
|
||||
|
||||
@@ -96,6 +96,7 @@ class FavVideoCardH extends StatelessWidget {
|
||||
double maxWidth = boxConstraints.maxWidth;
|
||||
double maxHeight = boxConstraints.maxHeight;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
NetworkImgLayer(
|
||||
src: videoItem.pic,
|
||||
@@ -132,6 +133,7 @@ class FavVideoCardH extends StatelessWidget {
|
||||
final theme = Theme.of(context);
|
||||
return Expanded(
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
@@ -179,7 +181,7 @@ class FavVideoCardH extends StatelessWidget {
|
||||
if (onDelFav != null)
|
||||
Positioned(
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
bottom: -8,
|
||||
child: iconButton(
|
||||
context: context,
|
||||
icon: Icons.clear,
|
||||
|
||||
@@ -118,6 +118,7 @@ class HistoryItem extends StatelessWidget {
|
||||
);
|
||||
},
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
@@ -127,9 +128,6 @@ class HistoryItem extends StatelessWidget {
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
AspectRatio(
|
||||
aspectRatio: StyleString.aspectRatio,
|
||||
@@ -170,9 +168,18 @@ class HistoryItem extends StatelessWidget {
|
||||
bottom: null,
|
||||
left: null,
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
if (videoItem.duration != null &&
|
||||
videoItem.duration != 0 &&
|
||||
videoItem.progress != null &&
|
||||
videoItem.progress != 0)
|
||||
Positioned(
|
||||
left: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
child: videoProgressIndicator(
|
||||
videoItem.progress == -1
|
||||
? 1
|
||||
: videoItem.progress! / videoItem.duration!,
|
||||
),
|
||||
),
|
||||
Positioned.fill(
|
||||
@@ -195,8 +202,8 @@ class HistoryItem extends StatelessWidget {
|
||||
child: IconButton(
|
||||
tooltip: '取消选择',
|
||||
style: ButtonStyle(
|
||||
padding:
|
||||
WidgetStateProperty.all(EdgeInsets.zero),
|
||||
padding: WidgetStateProperty.all(
|
||||
EdgeInsets.zero),
|
||||
backgroundColor:
|
||||
WidgetStateProperty.resolveWith(
|
||||
(states) {
|
||||
@@ -217,21 +224,10 @@ class HistoryItem extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
),
|
||||
if (videoItem.duration != null &&
|
||||
videoItem.duration != 0 &&
|
||||
videoItem.progress != null &&
|
||||
videoItem.progress != 0)
|
||||
Positioned(
|
||||
left: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
child: videoProgressIndicator(
|
||||
videoItem.progress == -1
|
||||
? 1
|
||||
: videoItem.progress! / videoItem.duration!,
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 10),
|
||||
videoContent(theme),
|
||||
@@ -240,7 +236,7 @@ class HistoryItem extends StatelessWidget {
|
||||
),
|
||||
Positioned(
|
||||
right: 12,
|
||||
bottom: 12,
|
||||
bottom: 0,
|
||||
child: SizedBox(
|
||||
width: 29,
|
||||
height: 29,
|
||||
@@ -339,6 +335,8 @@ class HistoryItem extends StatelessWidget {
|
||||
if (videoItem.authorName != '')
|
||||
Text(
|
||||
videoItem.authorName!,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: TextStyle(
|
||||
fontSize: theme.textTheme.labelMedium!.fontSize,
|
||||
color: theme.colorScheme.outline,
|
||||
|
||||
@@ -82,6 +82,7 @@ class _LaterViewChildPageState extends State<LaterViewChildPage>
|
||||
}
|
||||
var videoItem = loadingState.response![index];
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
VideoCardH(
|
||||
videoItem: videoItem,
|
||||
|
||||
@@ -41,6 +41,7 @@ class _LaterSearchPageState
|
||||
}
|
||||
final item = list[index];
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
VideoCardH(
|
||||
videoItem: item,
|
||||
|
||||
@@ -39,6 +39,7 @@ class LiveCardV extends StatelessWidget {
|
||||
double maxWidth = boxConstraints.maxWidth;
|
||||
double maxHeight = boxConstraints.maxHeight;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Hero(
|
||||
tag: heroTag,
|
||||
|
||||
@@ -39,6 +39,7 @@ class LiveCardVFollow extends StatelessWidget {
|
||||
double maxWidth = boxConstraints.maxWidth;
|
||||
double maxHeight = boxConstraints.maxHeight;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Hero(
|
||||
tag: heroTag,
|
||||
|
||||
@@ -214,6 +214,7 @@ class _LiveRoomPageState extends State<LiveRoomPage>
|
||||
return ColoredBox(
|
||||
color: Colors.black,
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Obx(
|
||||
() => isFullScreen
|
||||
@@ -281,6 +282,7 @@ class _LiveRoomPageState extends State<LiveRoomPage>
|
||||
resizeToAvoidBottomInset: false,
|
||||
backgroundColor: Colors.transparent,
|
||||
body: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
_buildAppBar,
|
||||
Column(
|
||||
|
||||
@@ -22,6 +22,7 @@ class LiveRoomChat extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Obx(
|
||||
() => ListView.separated(
|
||||
|
||||
@@ -40,6 +40,7 @@ class SeasonSeriesCard extends StatelessWidget {
|
||||
final double maxWidth = boxConstraints.maxWidth;
|
||||
final double maxHeight = boxConstraints.maxHeight;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
NetworkImgLayer(
|
||||
src: item['meta']['cover'],
|
||||
|
||||
@@ -441,6 +441,7 @@ class UserInfoCard extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
|
||||
@@ -47,6 +47,7 @@ class MemberCoinsItem extends StatelessWidget {
|
||||
double maxWidth = boxConstraints.maxWidth;
|
||||
double maxHeight = boxConstraints.maxHeight;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
NetworkImgLayer(
|
||||
src: coinItem.pic,
|
||||
|
||||
@@ -171,6 +171,7 @@ class _LikeMePageState extends State<LikeMePage> {
|
||||
width: 50,
|
||||
height: 50,
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
for (var j = 0;
|
||||
j < item.users!.length && j < 4;
|
||||
|
||||
@@ -35,6 +35,7 @@ class LiveItem extends StatelessWidget {
|
||||
double maxWidth = boxConstraints.maxWidth;
|
||||
double maxHeight = boxConstraints.maxHeight;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
NetworkImgLayer(
|
||||
src: liveItem.cover,
|
||||
|
||||
@@ -36,6 +36,7 @@ class SearchPgcItem extends StatelessWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
NetworkImgLayer(
|
||||
width: 111,
|
||||
|
||||
@@ -1509,6 +1509,7 @@ List<SettingsModel> get extraSettings => [
|
||||
defaultVal: false,
|
||||
onTap: () => Get.toNamed('/sponsorBlock'),
|
||||
leading: const Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Icon(Icons.shield_outlined),
|
||||
@@ -2063,6 +2064,7 @@ List<SettingsModel> get extraSettings => [
|
||||
title: '发评反诈',
|
||||
subtitle: '发送评论后检查评论是否可见',
|
||||
leading: const Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Icon(Icons.shield_outlined),
|
||||
@@ -2088,6 +2090,7 @@ List<SettingsModel> get extraSettings => [
|
||||
title: '发布/转发动态反诈',
|
||||
subtitle: '发布/转发动态后检查动态是否可见',
|
||||
leading: const Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Icon(Icons.shield_outlined),
|
||||
@@ -2101,6 +2104,7 @@ List<SettingsModel> get extraSettings => [
|
||||
settingsType: SettingsType.sw1tch,
|
||||
title: '屏蔽带货动态',
|
||||
leading: const Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Icon(Icons.shopping_bag_outlined, size: 14),
|
||||
@@ -2117,6 +2121,7 @@ List<SettingsModel> get extraSettings => [
|
||||
settingsType: SettingsType.sw1tch,
|
||||
title: '屏蔽带货评论',
|
||||
leading: const Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Icon(Icons.shopping_bag_outlined, size: 14),
|
||||
|
||||
@@ -75,6 +75,7 @@ class SubItem extends StatelessWidget {
|
||||
: '其它:${subFolderItem.type}';
|
||||
return Expanded(
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
|
||||
@@ -57,6 +57,7 @@ class SubVideoCardH extends StatelessWidget {
|
||||
double maxWidth = boxConstraints.maxWidth;
|
||||
double maxHeight = boxConstraints.maxHeight;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
NetworkImgLayer(
|
||||
src: videoItem.cover,
|
||||
@@ -85,6 +86,7 @@ class SubVideoCardH extends StatelessWidget {
|
||||
Widget videoContent(context) {
|
||||
return Expanded(
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
|
||||
@@ -193,6 +193,7 @@ class _PayCoinsPageState extends State<PayCoinsPage>
|
||||
|
||||
Widget _buildBody(isV) => Stack(
|
||||
key: _key,
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Visibility(
|
||||
@@ -268,6 +269,7 @@ class _PayCoinsPageState extends State<PayCoinsPage>
|
||||
BlendMode.srcATop,
|
||||
),
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
SlideTransition(
|
||||
@@ -389,6 +391,7 @@ class _PayCoinsPageState extends State<PayCoinsPage>
|
||||
],
|
||||
const SizedBox(height: 10),
|
||||
Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.centerLeft,
|
||||
children: [
|
||||
GestureDetector(
|
||||
|
||||
@@ -150,6 +150,7 @@ class _VideoInfoState extends State<VideoInfo> {
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Icon(
|
||||
@@ -548,6 +549,7 @@ class _VideoInfoState extends State<VideoInfo> {
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
|
||||
@@ -157,6 +157,7 @@ class ActionItemState extends State<ActionItem>
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
if (widget.needAnim && !_hideCircle)
|
||||
|
||||
@@ -96,6 +96,7 @@ class _PostPanelState extends CommonCollapseSlidePageState<PostPanel> {
|
||||
Widget buildList(ThemeData theme) {
|
||||
return list?.isNotEmpty == true
|
||||
? Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
SingleChildScrollView(
|
||||
controller: ScrollController(),
|
||||
|
||||
@@ -104,6 +104,7 @@ class _VideoReplyPanelState extends State<VideoReplyPanel>
|
||||
await _videoReplyController.onRefresh();
|
||||
},
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
CustomScrollView(
|
||||
controller: widget.needController == false
|
||||
|
||||
@@ -111,6 +111,7 @@ class ReplyItemGrpc extends StatelessWidget {
|
||||
top: 8,
|
||||
right: 12,
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.centerRight,
|
||||
children: [
|
||||
CachedNetworkImage(
|
||||
@@ -1179,6 +1180,7 @@ class ReplyItemGrpc extends StatelessWidget {
|
||||
onTap: () => menuActionHandler('checkReply'),
|
||||
minLeadingWidth: 0,
|
||||
leading: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
const Icon(Icons.shield_outlined, size: 19),
|
||||
|
||||
@@ -165,6 +165,7 @@ class _VideoReplyReplyPanelState
|
||||
},
|
||||
child: Obx(
|
||||
() => Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
ScrollablePositionedList.builder(
|
||||
key: _listKey,
|
||||
|
||||
@@ -552,6 +552,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
videoDetailController.scrollCtr.offset != 0 &&
|
||||
context.orientation == Orientation.portrait;
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
AppBar(
|
||||
backgroundColor: Colors.black,
|
||||
@@ -639,6 +640,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
? animHeight
|
||||
: videoDetailController.videoHeight,
|
||||
flexibleSpace: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Builder(
|
||||
builder: (context) {
|
||||
@@ -702,6 +704,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
child: SizedBox(
|
||||
height: kToolbarHeight,
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Align(
|
||||
alignment: Alignment.centerLeft,
|
||||
@@ -1182,6 +1185,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
);
|
||||
|
||||
Widget get childWhenDisabledLandscape => Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Scaffold(
|
||||
resizeToAvoidBottomInset: false,
|
||||
@@ -1261,6 +1265,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
() => Visibility(
|
||||
visible: videoDetailController.isShowCover.value,
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Positioned(
|
||||
top: 0,
|
||||
@@ -1634,6 +1639,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
MediaQuery.of(context).orientation == Orientation.portrait),
|
||||
onPopInvokedWithResult: _onPopInvokedWithResult,
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Positioned.fill(child: ColoredBox(color: Colors.black)),
|
||||
|
||||
@@ -1860,6 +1866,7 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
|
||||
);
|
||||
if (videoDetailController.isPlayAll) {
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
introPanel(),
|
||||
Positioned(
|
||||
|
||||
@@ -2032,6 +2032,7 @@ class HeaderControlState extends State<HeaderControl> {
|
||||
),
|
||||
onPressed: () => videoDetailCtr.onBlock(context),
|
||||
icon: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Icon(
|
||||
|
||||
@@ -179,6 +179,7 @@ class _MediaListPanelState
|
||||
);
|
||||
},
|
||||
child: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
@@ -194,6 +195,7 @@ class _MediaListPanelState
|
||||
child: LayoutBuilder(
|
||||
builder: (context, boxConstraints) {
|
||||
return Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
NetworkImgLayer(
|
||||
src: item.cover,
|
||||
@@ -233,6 +235,8 @@ class _MediaListPanelState
|
||||
const Spacer(),
|
||||
Text(
|
||||
item.upper!.name!,
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
color: theme.colorScheme.outline,
|
||||
@@ -265,7 +269,7 @@ class _MediaListPanelState
|
||||
if (showDelBtn && item.bvid != widget.getBvId())
|
||||
Positioned(
|
||||
right: 12,
|
||||
bottom: 0,
|
||||
bottom: -6,
|
||||
child: InkWell(
|
||||
customBorder: const CircleBorder(),
|
||||
onTap: () {
|
||||
@@ -281,7 +285,7 @@ class _MediaListPanelState
|
||||
child: Icon(
|
||||
Icons.clear,
|
||||
size: 18,
|
||||
color: theme.colorScheme.onSurfaceVariant,
|
||||
color: theme.colorScheme.outline,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -380,6 +380,7 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
|
||||
color: Colors.white,
|
||||
)
|
||||
: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
Icon(
|
||||
@@ -731,6 +732,7 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
|
||||
return Stack(
|
||||
fit: StackFit.passthrough,
|
||||
key: _playerKey,
|
||||
clipBehavior: Clip.none,
|
||||
children: <Widget>[
|
||||
Obx(
|
||||
() => Video(
|
||||
|
||||
Reference in New Issue
Block a user