107 lines
3.0 KiB
Dart
107 lines
3.0 KiB
Dart
import 'package:active_ecommerce_seller_app/my_theme.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:shimmer/shimmer.dart';
|
|
|
|
|
|
class ShimmerHelper {
|
|
buildBasicShimmer(
|
|
{double height = double.infinity, double width = double.infinity}) {
|
|
return Shimmer.fromColors(
|
|
baseColor: MyTheme.shimmer_base,
|
|
highlightColor: MyTheme.shimmer_highlighted,
|
|
child: Container(
|
|
height: height,
|
|
width: width,
|
|
color: Colors.white,
|
|
),
|
|
);
|
|
}
|
|
buildBoxShimmer(
|
|
{double height = double.infinity, double width = double.infinity}) {
|
|
return Shimmer.fromColors(
|
|
baseColor: MyTheme.app_accent_color_extra_light,
|
|
highlightColor: MyTheme.shimmer_highlighted,
|
|
child: Container(
|
|
height: height,
|
|
width: width,
|
|
color: Colors.white,
|
|
),
|
|
);
|
|
}
|
|
|
|
|
|
buildListShimmer({item_count = 10,item_height = 100.0}) {
|
|
return ListView.builder(
|
|
itemCount: item_count,
|
|
scrollDirection: Axis.vertical,
|
|
physics: NeverScrollableScrollPhysics(),
|
|
shrinkWrap: true,
|
|
itemBuilder: (context, index) {
|
|
return Padding(
|
|
padding: const EdgeInsets.only(
|
|
top: 0.0, left: 16.0, right: 16.0, bottom: 16.0),
|
|
child: ShimmerHelper().buildBasicShimmer(height: item_height),
|
|
);
|
|
},
|
|
);
|
|
}
|
|
|
|
buildProductGridShimmer({scontroller, item_count = 10}) {
|
|
return GridView.builder(
|
|
itemCount: item_count,
|
|
controller: scontroller,
|
|
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
|
crossAxisCount: 2,
|
|
crossAxisSpacing: 10,
|
|
mainAxisSpacing: 10,
|
|
childAspectRatio: 0.7),
|
|
padding: EdgeInsets.all(8),
|
|
physics: NeverScrollableScrollPhysics(),
|
|
shrinkWrap: true,
|
|
itemBuilder: (context, index) {
|
|
return Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: Shimmer.fromColors(
|
|
baseColor: MyTheme.shimmer_base,
|
|
highlightColor: MyTheme.shimmer_highlighted,
|
|
child: Container(
|
|
height: 120,
|
|
width: double.infinity,
|
|
color: Colors.white,
|
|
),
|
|
),
|
|
);
|
|
},
|
|
);
|
|
}
|
|
|
|
buildSquareGridShimmer({scontroller, item_count = 10}) {
|
|
return GridView.builder(
|
|
itemCount: item_count,
|
|
controller: scontroller,
|
|
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
|
crossAxisCount: 2,
|
|
crossAxisSpacing: 10,
|
|
mainAxisSpacing: 10,
|
|
childAspectRatio: 1),
|
|
padding: EdgeInsets.all(8),
|
|
physics: NeverScrollableScrollPhysics(),
|
|
shrinkWrap: true,
|
|
itemBuilder: (context, index) {
|
|
return Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: Shimmer.fromColors(
|
|
baseColor: MyTheme.shimmer_base,
|
|
highlightColor: MyTheme.shimmer_highlighted,
|
|
child: Container(
|
|
height: 120,
|
|
width: double.infinity,
|
|
color: Colors.white,
|
|
),
|
|
),
|
|
);
|
|
},
|
|
);
|
|
}
|
|
}
|