Files
karvon_market/app_code/lib/custom_ui/shimmers.dart
jahongireshonqulov 9fbdabafb4 Initial commit
2025-10-17 19:42:02 +05:00

85 lines
2.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:grostore/configs/style_config.dart';
import 'package:grostore/configs/theme_config.dart';
import 'package:shimmer/shimmer.dart';
class Shimmers extends StatelessWidget {
late double width, height;
double? radius;
Shimmers(
{Key? key, required this.width, required this.height, this.radius = 0})
: super(key: key);
@override
Widget build(BuildContext context) {
return Container(
width: width,
height: height,
child: Shimmer.fromColors(
baseColor: ThemeConfig.xlightGrey,
highlightColor: ThemeConfig.lightGrey,
child: Container(
decoration: BoxDecoration(
color: ThemeConfig.mediumGrey,
borderRadius:
radius != null ? BorderRadius.circular(radius!) : null,
),
width: width,
height: height),
),
);
}
static list(int items, double width, double height) {
return ListView.separated(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemBuilder: (context, index) {
return Shimmers(width: width, height: height);
},
separatorBuilder: (context, index) {
return const SizedBox(
height: 10,
);
},
itemCount: items);
}
static horizontalList(int items, double width, double height) {
return ListView.separated(
padding: EdgeInsets.symmetric(horizontal: StyleConfig.padding),
scrollDirection: Axis.horizontal,
itemBuilder: (context, index) {
return Shimmers(width: width, height: height);
},
separatorBuilder: (context, index) {
return const SizedBox(
width: 10,
);
},
itemCount: items);
}
static gridShimmer(int crossAxisCount, int items,
{double width = 160, double height = 186, double radius = 8}) {
return GridView.builder(
padding: EdgeInsets.symmetric(horizontal: StyleConfig.padding),
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: crossAxisCount,
crossAxisSpacing: 16,
mainAxisSpacing: 16,
childAspectRatio: 0.8),
itemCount: items,
itemBuilder: (context, index) {
return Shimmers(
width: double.parse(width.toString()),
height: double.parse(height.toString()),
radius: double.parse(radius.toString()),
);
});
}
}