要让 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/