Flutter中如何自定义buildMenuItem组件内的字体大小与样式
解决方案
首先你用到的buildMenuItem是自定义封装的组件方法,默认没有预留字体大小的配置参数,直接传参会报错,按照以下两步修改即可:
1. 调整buildMenuItem的方法定义,新增字体大小入参
找到你定义buildMenuItem方法的位置,增加可选的fontSize参数,并将参数绑定到内部显示文字的Text组件样式上,示例代码如下:
Widget buildMenuItem({ required String text, required IconData icon, required VoidCallback onClicked, // 新增可选字体大小参数,可设置默认值 double? fontSize, }) { // 此处为你原本的组件实现逻辑,找到展示text的Text组件修改style即可 // 下面以常见的ListTile实现为例: return ListTile( leading: Icon(icon), title: Text( text, style: TextStyle( // 应用传入的字体大小,未传时使用默认值14 fontSize: fontSize ?? 14, // 你原本的其他样式配置保留即可 ), ), onTap: onClicked, ); }
2. 调用方法时传入指定的字体大小
修改你的调用代码,传入需要的字体大小数值即可:
buildMenuItem( text: 'Home', icon: Icons.home, onClicked: () => main(), // 自定义字体大小,按需修改数值 fontSize: 18, ),
常见报错排查
- 如果修改后仍报错,检查
buildMenuItem内部的Text组件的style是否硬写死了fontSize属性,把硬写的固定值替换成上面的参数形式即可 - 注意
fontSize参数的类型是double,不要传入字符串或整数类型
内容的提问来源于stack exchange,提问作者Rajiv Mochammad Iqbal Alhadad
相关产品推荐
相关产品推荐

