java - 设置操作栏标题颜色时不推荐使用 Html.fromHtml

标签 java android android-studio android-actionbar

将目标 SDK 版本更新至 24.0.0 后,fromHtml变为删除线并返回弃用警告。在设置操作栏标题时,需要更改哪些内容才能解决此错误?

最低 API 为 17

actionBar.setTitle(Html.fromHtml("<font color='#FFFFFF'>" + getResources().getString(R.string.welcome) + "</font>"));

'fromHtml(java.lang.String)' is deprecated

enter image description here

最佳答案

如果您的minSdkVersion为 24 或更高,请使用 the version of fromHtml() that takes some flags as a parameter 。据我所知,FROM_HTML_MODE_LEGACY将是用于与旧的无标志兼容的标志值 fromHtml() .

如果您的minSdkVersion低于 24,您的选择是:

  • 始终使用fromHtml()您可能使用快速修复 (Alt-Enter) 来抑制 Lint 警告

  • 使用 fromHtml() 的两个版本:如果您的应用在 API 级别 24+ 设备上运行,则采用标志,或者在较旧的设备上不采用标志

后者看起来像:

if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.N) {
  actionBar.setTitle(Html.fromHtml(..., Html.FROM_HTML_MODE_LEGACY));
}
else {
  actionBar.setTitle(Html.fromHtml(...));
}

(其中 ... 是要转换的 HTML)

但请注意,如果您只是想更改整个操作栏标题的颜色,请使用 Sandro Machado's solutionHtml.fromHtml()和类似Spanned基于 的解决方案适用于您需要为单个 TextView 中的不同文本 fragment 使用不同颜色的情况(或使用 TextView 的东西,例如操作栏)。

关于java - 设置操作栏标题颜色时不推荐使用 Html.fromHtml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39028933/

相关文章:

java - 在 REST URL 中传递 JSON 字符串

java - Jersey Client WebTarget 是线程安全的吗?

android - 如何从 Android Studio Bumblebee 隐藏缩放 Controller ?

android-studio - 能见度不会在 flutter 中切换吗?

java - 暂停 Android 应用程序,直到按下按钮

java - 如何摆脱使用 RxJava 实现 Firebase 注册的 instanceOf

java - 由于多次创建/更新请求,同一文档被多次插入

android - 如何在android中使用带有回调的 Intent 打开Goog​​le Play商店?

java - 应用程序因空指针异常而崩溃,并且在 android webview 中按下“返回”时出现其他错误

android - OkHttp 请求即使在网络出现故障时也能保持运行