android - 如何修复 Html.fromHtml 链接焦点可见性问题(在 ICS 和 Honeycomb 中)?

标签 android textview android-3.0-honeycomb google-tv android-4.0-ice-cream-sandwich

要让 TextView 显示(并友好地处理)Html 字符串,我的代码如下所示:

// itemHtml is a String of HTML defined above

TextView itemContent = (TextView) findViewById(R.id.itemContent);
itemContent.setText(Html.fromHtml(itemHtml));
itemContent.setMovementMethod(LinkMovementMethod.getInstance());

如果 Html 字符串有一个链接,TextView 会产生可点击和聚焦的链接。当用户将焦点放在特定链接上时(例如,通过使用方向键),链接文本会以某种重要方式发生变化,以表明已获得焦点。

问题是,当我使用带有方向键的设备使用 Honeycomb(例如 Google TV)或 Ice Cream Sandwich 风格的 Android 测试相同的模式时,文本中的链接没有明显表明该链接具有焦点.

我知道它正在获得焦点,因为当您按下回车键时,它会执行指定的操作。您甚至可以在文本中的各个链接之间移动;您只能猜测当前所在的链接,这会导致非常糟糕的用户体验。

我做错了什么吗?有什么方法可以解决这个问题或解决这个问题吗?

最佳答案

编辑:在有点疯狂之后,我终于认为我找到了解决方案。但是,此解决方案仅适用于 Honeycomb。 ICS 仍未解决!

从 API 11 开始,Android 在 TextViews 上有一个新设置,用于定义文本是否可选择。

您可以在 TextView 上使用 setTextIsSelectable(true) 设置它,或者在 XML 布局中定义它 android:textIsSelectable="true"

最好用 XML 定义它,这样保持应用程序向后兼容就很简单了。只需确保您的目标版本 >= 11,否则您可能会遇到错误。

关于android - 如何修复 Html.fromHtml 链接焦点可见性问题(在 ICS 和 Honeycomb 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7869506/

相关文章:

android - 什么是重启期间的 Android "optimising"?

Android TextView 和 setTextIsSelectable

java - 在 Android 中通过 ImageView 显示 TextView

java - 选项菜单文本颜色操作 HoneyComb

android - 如何在 Fragment 中重用 onNewIntent() 方法?

java - 使用 GSON 解析带有键和选项卡的 JSON 文件

android - 使用 FFmpeg Android 快速准确地修剪视频,如 Instagram

android - 在textview android中显示来自JSON的嵌套数据

android - 如何在 Android 3.0 (Honeycomb) 中调暗系统栏?

android - 键盘布局隐藏android操作栏?