检索TextView单击行号



在这里真的很愚蠢,但找不到答案。

我有一个可单击的文本视图。如何检索单击的行号?

问题不是那么愚蠢,因为我知道没有内置的方法。

但是您可以使用:

  • getLineHeight()确定文本视图中的每一行的高度和
  • MotionEvent#getY()在OnTouchListener中以计算单击哪个行。

基本示例:

textView.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_UP) {
            float line = FloatMath.floor(event.getY() / textView.getLineHeight());
            Toast.makeText(getBaseContext(), "" + line, Toast.LENGTH_SHORT).show();
        }
        return false;
    }
});

来自getLineHeight()文档:

请注意,文本中的标记可能会导致单个线比该高度更高或更短,并且布局可能包含额外的第一或最后一线填充。

因此,如果您修改了上面列出的任何属性,则还需要考虑。

相关内容

  • 没有找到相关文章

最新更新