我在配置为固定宽度的布局上有一个TextView,并设置为单行模式。 text属性设置为一个字符串,它显示的水平空间比TextView的宽度要多得多。用户界面允许轻松地向左和向右滚动文本,以便可以在视图中看到字符串的任何给定部分。
我想在文本视图的右侧和左侧放置小标记图形,以显示视图两侧的文本滚动超出边框。如何查询TextView以确定文本字符串是否溢出超出左边框或右边框?
答案 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