Browse Source

fix: responsive

pull/6/head
AmirrezaChegini 2 weeks ago
parent
commit
879cc818b9
  1. 18
      lib/core/utils/check_platform.dart
  2. 49
      lib/core/widgets/about_us_dialog/about_us_dialog.dart
  3. 11
      lib/core/widgets/about_us_dialog/styles/background.dart
  4. 38
      lib/features/intro/presentation/ui/intro_page.dart

18
lib/core/utils/check_platform.dart

@ -1,3 +1,4 @@
import 'package:flutter/cupertino.dart';
import 'package:hadi_hoda_flutter/core/utils/my_device.dart';
dynamic checkPlatform({
@ -13,3 +14,20 @@ dynamic checkPlatform({
return web;
}
}
double? checkSize({
required BuildContext context,
double? mobile,
double? tablet,
double? desktop,
}) {
if (MyDevice.isMobile(context)) {
return mobile;
} else if (MyDevice.isTablet(context)) {
return tablet;
} else if (MyDevice.isDesktop(context)) {
return desktop;
} else {
return null;
}
}

49
lib/core/widgets/about_us_dialog/about_us_dialog.dart

@ -5,6 +5,7 @@ import 'package:go_router/go_router.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:hadi_hoda_flutter/common_ui/resources/my_assets.dart';
import 'package:hadi_hoda_flutter/common_ui/theme/my_theme.dart';
import 'package:hadi_hoda_flutter/core/utils/check_platform.dart';
import 'package:hadi_hoda_flutter/core/utils/my_image.dart';
import 'package:hadi_hoda_flutter/core/utils/my_localization.dart';
import 'package:hadi_hoda_flutter/core/widgets/about_us_dialog/styles/background.dart';
@ -29,7 +30,13 @@ class AboutUsDialog extends StatelessWidget {
filter: ImageFilter.blur(sigmaX: 6, sigmaY: 6),
child: Center(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 18),
padding: EdgeInsets.symmetric(
horizontal: checkSize(
context: context,
mobile: 18,
tablet: 120,
) ?? 0,
),
child: Stack(
clipBehavior: Clip.none,
children: [
@ -41,7 +48,11 @@ class AboutUsDialog extends StatelessWidget {
context.translate.about_us,
style: GoogleFonts.marhey(
color: Color(0XFF322386),
fontSize: 22,
fontSize: checkSize(
context: context,
mobile: 22,
tablet: 30,
),
fontWeight: FontWeight.w600,
),
),
@ -49,12 +60,17 @@ class AboutUsDialog extends StatelessWidget {
context.translate.about_us_desc,
style: GoogleFonts.marhey(
color: Color(0XFF494178),
fontSize: 16,
fontSize: checkSize(
context: context,
mobile: 16,
tablet: 21,
),
fontWeight: FontWeight.w500,
),
),
MyImage(
image: MyAssets.newHorizon,
size: 70,
),
MyImage(
image: MyAssets.khadijeLogo,
@ -63,22 +79,37 @@ class AboutUsDialog extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.center,
spacing: 20,
children: [
MyImage(image: MyAssets.facebook, size: 33),
MyImage(image: MyAssets.instagram, size: 33),
MyImage(image: MyAssets.whatsapp, size: 33),
MyImage(image: MyAssets.youtube, size: 33),
MyImage(
image: MyAssets.facebook,
size: checkSize(context: context, mobile: 33, tablet: 46),
),
MyImage(
image: MyAssets.instagram,
size: checkSize(context: context, mobile: 33, tablet: 46),
),
MyImage(
image: MyAssets.whatsapp,
size: checkSize(context: context, mobile: 33, tablet: 46),
),
MyImage(
image: MyAssets.youtube,
size: checkSize(context: context, mobile: 33, tablet: 46),
),
],
),
],
),
),
Positioned(
right: 30,
right: checkSize(context: context, mobile: 30, tablet: 40),
top: -12,
child: GestureDetector(
onTap: context.pop,
behavior: HitTestBehavior.opaque,
child: MyImage(image: MyAssets.closeBtn, size: 40),
child: MyImage(
image: MyAssets.closeBtn,
size: checkSize(context: context, mobile: 40, tablet: 60),
),
),
),
],

11
lib/core/widgets/about_us_dialog/styles/background.dart

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:hadi_hoda_flutter/core/utils/check_platform.dart';
import 'package:hadi_hoda_flutter/core/utils/screen_size.dart';
class AboutUSDialogBackground extends StatelessWidget {
@ -12,8 +13,14 @@ class AboutUSDialogBackground extends StatelessWidget {
clipper: _BottomShapeClipper(),
child: Container(
width: context.widthScreen,
height: 525,
padding: EdgeInsets.all(30),
height: checkSize(context: context, mobile: 525, tablet: 740),
padding: EdgeInsets.all(
checkSize(
context: context,
mobile: 30,
tablet: 60,
) ?? 0,
),
decoration: const BoxDecoration(
gradient: LinearGradient(
begin: Alignment.bottomCenter,

38
lib/features/intro/presentation/ui/intro_page.dart

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:hadi_hoda_flutter/common_ui/resources/my_assets.dart';
import 'package:hadi_hoda_flutter/common_ui/theme/my_theme.dart';
import 'package:hadi_hoda_flutter/core/utils/check_platform.dart';
import 'package:hadi_hoda_flutter/core/utils/my_image.dart';
import 'package:hadi_hoda_flutter/core/utils/screen_size.dart';
import 'package:hadi_hoda_flutter/core/widgets/about_us_dialog/about_us_dialog.dart';
@ -26,8 +27,8 @@ class IntroPage extends StatelessWidget {
child: Stack(
alignment: Alignment.center,
children: [
_music(),
_name(),
_music(context),
_name(context),
_bottomBtns(context),
],
),
@ -36,23 +37,24 @@ class IntroPage extends StatelessWidget {
);
}
Positioned _music() {
Positioned _music(BuildContext context) {
return Positioned(
top: 36,
right: 16,
top: checkSize(context: context, mobile: 36, tablet: 60),
right: checkSize(context: context, mobile: 16, tablet: 30),
child: MyImage(
image: MyAssets.musicOn,
size: checkSize(context: context, tablet: 120),
),
);
}
Positioned _name() {
Positioned _name(BuildContext context) {
return Positioned(
top: 146,
child: MyImage(
image: MyAssets.hadiHoda,
size: 232,
size: checkSize(context: context, mobile: 232, tablet: 400),
fit: BoxFit.cover,
),
);
@ -60,20 +62,30 @@ class IntroPage extends StatelessWidget {
Positioned _bottomBtns(BuildContext context) {
return Positioned(
bottom: 40,
left: 16,
right: 16,
bottom: checkSize(context: context, mobile: 40, tablet: 60),
left: checkSize(context: context, mobile: 16, tablet: 30),
right: checkSize(context: context, mobile: 16, tablet: 30),
child: Row(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
MyImage(image: MyAssets.language),
InkWell(child: MyImage(image: MyAssets.start, size: 90),
MyImage(
image: MyAssets.language,
size: checkSize(context: context, tablet: 120),
),
InkWell(
child: MyImage(
image: MyAssets.start,
size: checkSize(context: context, mobile: 90, tablet: 160),
),
onTap: () {
showAboutUsDialog(context: context);
},
),
MyImage(image: MyAssets.theme),
MyImage(
image: MyAssets.theme,
size: checkSize(context: context, tablet: 120),
),
],
),
);

Loading…
Cancel
Save