将目标 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
最佳答案
如果您的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 solution 。 Html.fromHtml()
和类似Spanned
基于 的解决方案适用于您需要为单个 TextView
中的不同文本 fragment 使用不同颜色的情况(或使用 TextView
的东西,例如操作栏)。
关于java - 设置操作栏标题颜色时不推荐使用 Html.fromHtml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39028933/