android程序ScrollView里有TextView,知道指定的字符在Text中的偏移量,如何直接跳转到该位置
android程序ScrollView里有TextView,知道指定的字符在Text中的偏移量,如何直接跳转到该位置或者说如何计算该字符显示到TextView中是第几行,...
android程序ScrollView里有TextView,知道指定的字符在Text中的偏移量,如何直接跳转到该位置
或者说如何计算该字符显示到TextView中是第几行,如何计算该位置ScrollView的X和Y值
谢谢 展开
或者说如何计算该字符显示到TextView中是第几行,如何计算该位置ScrollView的X和Y值
谢谢 展开
2个回答
展开全部
int[] location = new int[2];
TextView.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
获取控件的位置 在加上字符在TextView中的偏移量就是字符的坐标了
TextView.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
获取控件的位置 在加上字符在TextView中的偏移量就是字符的坐标了
追问
关键是我TextView中的文本特别长,而且TextView折行和空行都很不规律,没法简单用偏移量计算出坐标
追答
你说的偏移量是字符的位置说 ,,我以为你说的是坐标哦!
这个其实和x坐标没什么关系 只要算出y坐标就收了
TextView.getLayout() //这个需要在TextView执行onDraw后调用,,如果得到为空就用post执行
layout有getLineEnd(int l)参数是行数 循环调用从0开始 得到每一行最后一个字符的position然后和你的字符位置比对 这样可以得到你字符的行数,,然后TextView.getpaddingTop+layout.getLineHeight()*你刚刚算出的行数即可得到字符在TextView的Y偏移 加上控件的Y坐标就是字符的Y坐标
展开全部
public final void smoothScrollTo (int x, int y)
Since: API Level
1
Like scrollTo(int,
int), but scroll smoothly instead of immediately.
Parameters
xthe position where to scroll on the X axis
ythe position where to scroll on the Y axis
更多追问追答
追问
我的问题在于如何得到这个x和y,并不是滚动的函数
谢谢
追答
写个onscroll事件呀,然后从里面获取组件的xy,然后就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询