是否可以查询TextView滚动位置?

时间:2016-07-16 21:22:35

标签: android textview

我在配置为固定宽度的布局上有一个TextView,并设置为单行模式。 text属性设置为一个字符串,它显示的水平空间比TextView的宽度要多得多。用户界面允许轻松地向左和向右滚动文本,以便可以在视图中看到字符串的任何给定部分。

我想在文本视图的右侧和左侧放置小标记图形,以显示视图两侧的文本滚动超出边框。如何查询TextView以确定文本字符串是否溢出超出左边框或右边框?

1 个答案:

答案 0 :(得分:2)

虽然我之前没有使用它,但请查看TextView上的getMovementMethod()。您应该能够通过MovementMethod访问滚动事件。

根据MovementMethod的Android文档:

  

在TextView中提供光标定位,滚动和文本选择功能。

     

TextView将关键事件,轨迹球运动和触摸的处理委托给用于内容导航的移动方法。框架会根据TextView的内容自动选择合适的移动方法。

您可以尝试扩展ScrollingMovementMethod,然后针对TextView进行设置,例如:

MyScrollingMovementMethod movementMethod = new MyScrollingMovementMethod();
mTextView.setMovementMethod(movementMethod);

然后覆盖onTouchEvent的{​​{1}}方法。

但是,您应该尝试扩展TextView以手动处理计算滚动长度。在这里查看这个答案:https://stackoverflow.com/a/19827071/1738090