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());

不起作用,因为findViewByIdAppWidgetProvider 中不可用,而仅在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的主要内容,如果未能解决你的问题,请参考以下文章

FloatingActionButton 在列表滚动时隐藏

Android Widget:Textview 在主页滚动时停止选取框

阅读《Android 从入门到精通》(21)——滚动视图

带有两个列表片段的可滚动布局

带有列和标题的可滚动表格

java.lang.NullPointerException:尝试在空对象 2017 上调用虚拟方法 'android.text.Editable android.widget.EditText.ge