我需要帮助来解决我想在TextView中移动包含文本(ClickableSpan文本)的ScrollView的问题。我突出显示了Spannable文本(完成)。如何在突出显示文本的同时移动滚动? 请参阅图片链接,进一步明确我的问题 https://drive.google.com/open?id=1IheHSt8sxd7y0BN9kr_pP0W3cxOompec
for (int i = 0; i <= size; i++) {
int end = spanString.indexOf("﴾", startAyat) + 1;
spanText.setSpan(new myClickableSpan(i), startAyat, end, 0);
startAyat = end;
}
XMLLayout
<ScrollView
android:id="@+id/sv"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tvArabicQuran"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp"
android:textColor="@color/black" />
答案 0 :(得分:1)
您需要从TextView滚动一些特定文本,然后首先需要获取要滚动的行索引
使用文字查找行
int offset=myString.indexOf("search string");
int line = tvArabicQuran.getLayout().getLineForOffset(offset);
滚动到特定行
sv.post(new Runnable() {
@Override
public void run() {
int y = tvArabicQuran.getLayout().getLineTop(line); // e.g. I want to scroll to line
sv.scrollTo(0, y);
}
});