Integration fonctionnalités V1 ( resas + gestion machines
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
/// Grille responsive pour les cartes machines (téléphone → tablette).
|
||||
abstract final class MachineGridLayout {
|
||||
static const _minTileWidth = 155.0;
|
||||
static const _maxTileWidth = 190.0;
|
||||
|
||||
static SliverGridDelegate delegate(BuildContext context) {
|
||||
final width = MediaQuery.sizeOf(context).width;
|
||||
const padding = 32.0;
|
||||
final available = width - padding;
|
||||
|
||||
if (available > _maxTileWidth * 3) {
|
||||
return const SliverGridDelegateWithMaxCrossAxisExtent(
|
||||
maxCrossAxisExtent: _maxTileWidth,
|
||||
mainAxisSpacing: 10,
|
||||
crossAxisSpacing: 10,
|
||||
childAspectRatio: 0.88,
|
||||
);
|
||||
}
|
||||
|
||||
final count = (available / _minTileWidth).floor().clamp(2, 3);
|
||||
|
||||
return SliverGridDelegateWithFixedCrossAxisCount(
|
||||
crossAxisCount: count,
|
||||
mainAxisSpacing: 10,
|
||||
crossAxisSpacing: 10,
|
||||
childAspectRatio: count >= 3 ? 0.85 : 0.92,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user