feat: přidat projekt

This commit is contained in:
Matyáš Caras 2023-02-10 15:53:42 +01:00
commit 95b26b4063
42 changed files with 5261 additions and 0 deletions

View file

@ -0,0 +1,48 @@
import 'package:flutter/material.dart';
import 'package:responsive_sizer/responsive_sizer.dart';
// Předloha pro widgety, které se mění podle druhu zařízení
abstract class DeviceWidget<D extends Widget, M extends Widget>
extends StatelessWidget {
const DeviceWidget({super.key});
@override
Widget build(BuildContext context) {
if (Device.screenType == ScreenType.mobile) {
return buildProMobily(context);
} else {
return buildProDesktop(context);
}
}
M buildProMobily(BuildContext context);
D buildProDesktop(BuildContext context);
}
class DeviceContainer extends DeviceWidget<Row, Column> {
final MainAxisAlignment mainAxisAlignmentMobile;
final MainAxisAlignment mainAxisAlignmentDesktop;
final CrossAxisAlignment crossAxisAlignment;
final List<Widget> children;
/// Vytvoří kontejner, kde na mobilech je [Column] a na ostatních [Row]
const DeviceContainer(
{super.key,
this.children = const [],
this.mainAxisAlignmentMobile = MainAxisAlignment.center,
this.mainAxisAlignmentDesktop = MainAxisAlignment.start,
this.crossAxisAlignment = CrossAxisAlignment.center});
@override
Row buildProDesktop(BuildContext context) => Row(
mainAxisAlignment: mainAxisAlignmentDesktop,
children: children,
);
@override
Column buildProMobily(BuildContext context) => Column(
mainAxisAlignment: mainAxisAlignmentMobile,
children: children,
);
}