mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-06-01 00:28:18 +08:00
@@ -65,13 +65,10 @@ class _MemberShopState extends State<MemberShop>
|
||||
@override
|
||||
bool get wantKeepAlive => true;
|
||||
|
||||
late double _maxWidth;
|
||||
|
||||
late final gridDelegate = SliverWaterfallFlowDelegateWithMaxCrossAxisExtent(
|
||||
maxCrossAxisExtent: Grid.smallCardWidth,
|
||||
mainAxisSpacing: StyleString.safeSpace,
|
||||
crossAxisSpacing: StyleString.safeSpace,
|
||||
afterCalc: (value) => _maxWidth = value,
|
||||
);
|
||||
|
||||
Widget _buildBody(LoadingState<List<SpaceShopItem>?> loadingState) {
|
||||
@@ -92,10 +89,7 @@ class _MemberShopState extends State<MemberShop>
|
||||
gridDelegate: gridDelegate,
|
||||
delegate: SliverChildBuilderDelegate(
|
||||
(_, index) {
|
||||
return MemberShopItem(
|
||||
item: response[index],
|
||||
maxWidth: _maxWidth,
|
||||
);
|
||||
return MemberShopItem(item: response[index]);
|
||||
},
|
||||
childCount: response.length,
|
||||
),
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
import 'package:PiliPlus/common/widgets/badge.dart';
|
||||
import 'package:PiliPlus/common/widgets/flutter/layout_builder.dart';
|
||||
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
|
||||
import 'package:PiliPlus/models/common/badge_type.dart';
|
||||
import 'package:PiliPlus/models_new/space/space_shop/item.dart';
|
||||
import 'package:PiliPlus/utils/extension/theme_ext.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/material.dart' hide LayoutBuilder;
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class MemberShopItem extends StatelessWidget {
|
||||
const MemberShopItem({
|
||||
super.key,
|
||||
required this.item,
|
||||
required this.maxWidth,
|
||||
});
|
||||
|
||||
final SpaceShopItem item;
|
||||
final double maxWidth;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@@ -34,11 +33,13 @@ class MemberShopItem extends StatelessWidget {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
NetworkImgLayer(
|
||||
type: .emote,
|
||||
src: item.cover?.url,
|
||||
width: maxWidth,
|
||||
height: maxWidth,
|
||||
LayoutBuilder(
|
||||
builder: (context, constraints) => NetworkImgLayer(
|
||||
type: .emote,
|
||||
src: item.cover?.url,
|
||||
width: constraints.maxWidth,
|
||||
height: constraints.maxWidth,
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(8),
|
||||
|
||||
Reference in New Issue
Block a user