在Textview中自动滚动文本

时间:2018-02-10 06:58:10

标签: android textview scrollview spannablestring

我需要帮助来解决我想在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" />

1 个答案:

答案 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);
    }
});