如何在不为每个粗细指定新系列的情况下选择不同的字体粗细?
fonts:
- family: Montserrat
fonts:
- asset: assets/fonts/Montserrat-Regular.ttf
weight: 100
- asset: assets/fonts/Montserrat-Bold.ttf
weight: 700
- family: MontserratBold
fonts:
- asset: assets/fonts/Montserrat-Bold.ttf
Run Code Online (Sandbox Code Playgroud)
和小部件:
child: Text(
'TEST',
style: TextStyle(
fontSize: 17.4,
fontFamily: 'Montserrat',
fontWeight: FontWeight.w700,
color: Colors.black87,
),
),
Run Code Online (Sandbox Code Playgroud)
..
child: Text(
'TEST2',
style: TextStyle(
fontSize: 17.4,
fontFamily: 'MontserratBold',
color: Colors.black87),
),
Run Code Online (Sandbox Code Playgroud)
实际的Montserrat-Bold仅与“ TEST2”一起使用。我已经尝试在pubspec.yaml中使用“ Packages get”并重新启动应用程序。
在做了一些挖掘之后,我发现谷歌源代码包含与 NR(新无线电)相关的 5G 信息。有趣的是,这些更改在 dev 或 pie-dev 上不可用,但在 master 分支上可用!
5g 的 CellInfo 类 https://android.googlesource.com/platform/frameworks/base/+/master/telephony/java/android/telephony/CellInfoNr.java
5g电话类列表:
CellIdentityNr.java
CellInfoNr.java
CellSignalStrengthNr.java
我希望我的应用程序在第一部 5G 手机即将推出之前开始支持 5G,但新类不在我正在构建的 SDK 中 (28) 我需要等待 Android Q 吗?4G的故事是什么?
当我在运行 Android P 及更低版本的 Android 手机上执行引用https://developer.android.com/reference/android/telephony/TelephonyManager.CellInfoCallback的代码时,我在日志中收到以下消息:
拒绝对先前失败的类 java.lang.Class 进行重新初始化:java.lang.NoClassDefFoundError:解析失败:Landroid/telephony/TelephonyManager$CellInfoCallback;
我不希望此消息被发送为垃圾邮件并被客户看到。我尝试过使用注释类
@RequiresApi(api = Build.VERSION_CODES.Q)
class RadioCallback : TelephonyManager.CellInfoCallback() {
override fun onCellInfo(p0: MutableList<CellInfo>) {
}
}
Run Code Online (Sandbox Code Playgroud)
并且只能在 Android Q 上调用此类:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
val radioCallback = RadioCallback()
telephonyManager.requestCellInfoUpdate(AsyncTask.SERIAL_EXECUTOR, radioCallback)
}
Run Code Online (Sandbox Code Playgroud)
PS 此线程java.lang.NoClassDefFoundError 在旧版 Android SDK 版本上的解决方案没有帮助