Android Widget 中的可滚动 TextView
Posted
技术标签:
【中文标题】Android Widget 中的可滚动 TextView【英文标题】:Scrollable TextView in Android Widget 【发布时间】:2011-04-22 05:45:23 【问题描述】:我想创建一个带有可滚动文本视图的 android 小部件。
对这个问题给出的解决方案 Making TextView scrollable on Android 无法应用,因为它是一个小部件:
1。 这个
findViewById(R.id.textview).setMovementMethod(new MovementMethod());
不起作用,因为findViewById
在AppWidgetProvider
中不可用,而仅在Activity
中可用。
2.在TextView
周围放置一个ScrollView
也不起作用,因为我得到了一个
InflateException
:
android.view.InflateException: Binary XML file line #23: Error inflating class ScrollView
谁能给我一个提示,如何使 Widget 中的 TextView
可滚动?
【问题讨论】:
【参考方案1】:我通过将文本视图放在带有单个节点的 ListView 中解决了这个问题,这在 App 小部件中受支持。
http://developer.android.com/guide/topics/appwidgets/index.html#collections
【讨论】:
xml究竟需要如何格式化? 这是唯一的解决方案!现在“不可能”的回复被标记为解决方案 - 这是错误的! p.s.另一个“解决方案”是:将任何网络链接添加到 textview - 例如: www.google.com 之后出现垂直滚动条。但这不是优雅和完整的解决方案。这可能是临时解决方法...【参考方案2】:看起来这是不可能的。
可以在这里找到更多信息:http://code.google.com/p/android/issues/detail?id=9580
这里: How to make a scrollable app widget?
因此,也许可以让 appwidgets 在 HTC 感知环境中可滚动,但不适用于普通的 android 环境。
解决此问题的一种方法是添加在列表中上下移动的按钮。
【讨论】:
【参考方案3】:我一直在使用两个通过数组递增和递减的按钮来解决这个问题。只是无法访问全局变量。你在这方面有什么进展吗?
【讨论】:
【参考方案4】:另一种解决方案是:
将任何网页链接添加到 textview - 例如:www.google.com。
使用 HtmlCompat.fromHtml 方法设置文本值:
textView.setText(HtmlCompat.fromHtml("一些文本" + "\nwww.google.com", HtmlCompat.FROM_HTML_MODE_COMPACT));
在出现垂直滚动条之后。 但这不是优雅和完整的解决方案。这可能是临时解决方法...
完整的完整解决方案是 bat-el-g 的答案 - 添加 ListView。
当前标记的解决方案(它只是告诉:“这是不可能的”) - 是错误的。
【讨论】:
【参考方案5】:在 mainactivity.java 中:
代码后文本视图:
TextView txt = (TextView) findViewById(R.id.textView id);
输入此代码:
txt.setMovementMethod(new ScrollingMovementMethod());
你会没事的。
【讨论】:
以上是关于Android Widget 中的可滚动 TextView的主要内容,如果未能解决你的问题,请参考以下文章
Android Widget:Textview 在主页滚动时停止选取框
java.lang.NullPointerException:尝试在空对象 2017 上调用虚拟方法 'android.text.Editable android.widget.EditText.ge