Files
MookNote/lib/utils/responsive.dart
DelLevin-Home 1192f8f7e0 适配平板
2026-06-30 21:51:38 +08:00

32 lines
952 B
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import 'package:flutter/widgets.dart';
/// 响应式布局断点工具
class Breakpoint {
/// ≥600dp: 平板布局(常驻侧边栏 + NavigationRail
static const double tablet = 600.0;
/// ≥900dp: 宽屏内容区(列表-详情并排显示)
static const double wideContent = 900.0;
static bool isTablet(BuildContext context) =>
MediaQuery.sizeOf(context).width >= tablet;
static bool isPhone(BuildContext context) =>
MediaQuery.sizeOf(context).width < tablet;
/// 是否使用宽屏内容布局(列表+详情并排)
static bool isWideContent(BuildContext context) =>
MediaQuery.sizeOf(context).width >= wideContent;
}
/// 根据可用宽度动态计算网格列数
int responsiveCrossAxisCount(
double availableWidth, {
double minItemWidth = 160,
int minCount = 2,
int maxCount = 6,
}) {
final count = (availableWidth / minItemWidth).floor();
return count.clamp(minCount, maxCount);
}