两种方式:一种是禁用全局,一种是禁用跳转的单个页面。本质上用的都是一行代码。 全局配置
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化应用
await AppInit.initialize();
runApp(const ProviderScope(child: MyApp()));
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return ScreenUtilInit(
designSize: const Size(375, 812),
minTextAdapt: true,
splitScreenMode: true,
builder: (context, child) {
return MediaQuery(
data: MediaQuery.of(
context,
).copyWith(textScaler: TextScaler.linear(1.0)), /// 这里
child: child!,
);
},
child: MaterialApp.router(
title: 'App',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
debugShowCheckedModeBanner: false,
routerConfig: AppRouter.router,
),
);
}
}
单个页面跳转配置
///公共打开方式
///第一步让其用ios的跳转风格
///第二步配置其字体不缩放配置
///第三步根据设备来控制内部滚动视图的效果
static NavigatorRouter(BuildContext context, Widget widget) {
return Navigator.push(
context,
CupertinoPageRoute(
// iOS 风格页面跳转动画
builder: (context) =>
pageContainer(widget, context))); // iOS 风格页面跳转动画
}
///Page页面的容器,做一次通用自定义
static Widget pageContainer(widget, BuildContext context) {
return MediaQuery(
///不受系统字体缩放影响
data: MediaQuery.of(context)
.copyWith(textScaler: TextScaler.noScaling), // 先复制系统字体配置,再设置字体不缩放
child: NeverOverScrollIndicator(
needOverload: false,
child: widget,
));
}