我在屏幕上显示我的自定义图标字体时遇到麻烦。Android模拟器和iOS模拟器。我通过生成字体的包导入图标。我以前直接在应用程序存储库中从assets/fonts
中导入它们。改变的是它们现在来自一个包,它们是otf
而不是ttf
。但据我所知,当前的Flutter版本应该能够显示otf
。
下面你可以找到iOS(左侧)和Android(右侧)的屏幕截图。
environment:
sdk: ">=3.0.0 <4.0.0"
dependencies:
flutter:
sdk: flutter
my_font_package:
git:
url: [email protected]:MyOrg/my-font.git
ref: 0.0.3
flutter:
fonts:
- family: My Font
fonts:
- asset: packages/my_font_package/fonts/my_font.otf
字符串
当我以任何不同的方式更改otf
的路径时,构建编译器将给予预期错误。因此路径是查找文件。
import 'package:my_font_package/my_font.dart';
class MyIcon extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Icon(
MyFont.eyesolid,
color: Colors.primary,
size: 24.0,
);
}
}
型
在font包中:
class MyFont{
const MyFont._();
static const iconFontFamily = 'My Font';
static const iconFontPackage = 'my_font';
/// Font icon named "__eye-closed__"
///
/// <image width='32px' src='data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJpY29uIGljb24gaWNvbi1leWUtY2xvc2VkIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMjEgOWMtMi40IDIuNjY3IC01LjQgNCAtOSA0Yy0zLjYgMCAtNi42IC0xLjMzMyAtOSAtNCIvPjxwYXRoIGQ9Ik0zIDE1bDIuNSAtMy44Ii8+PHBhdGggZD0iTTIxIDE0Ljk3NmwtMi40OTIgLTMuNzc2Ii8+PHBhdGggZD0iTTkgMTdsLjUgLTQiLz48cGF0aCBkPSJNMTUgMTdsLS41IC00Ii8+PC9zdmc+'>
static const IconData eyeclosed = IconData(0xe015,
fontFamily: iconFontFamily, fontPackage: iconFontPackage);
}
型
我有flutter clean
,清理了该高速缓存,关闭了模拟器并多次重建应用程序。因此,我在这里添加了一个新问题,看看是否有其他方面我错过了。
有趣的方面:Android Studio也不给我给予预览。
也许这给出了正确的方向,或者这是一个分心。谁知道呢?以前的材料设计图标工作得很好。
1条答案
按热度按时间vcirk6k61#
解决方案是棘手的,但在这里可见。
字体本身不是一个包。类被交付给实现。这就是为什么在IconData中定义属性
fontPackpage
是错误的。这是错误的,因为类和字体在同一个包中。
字符串
它应该是:
型
结果
的数据