Android scrollview(textview)の長いテキストが指定された行に配置されます

プロジェクトを行うとき、複数の選択肢の質問を行うには、長いテキストの特定の行をくり抜く必要があり、スクロールバーを特定の行に配置する必要があります(空白行を埋める)

長い間チェックしましたが、この問題は解決しませんでしたが、その後、主に位置オフセットとscrollTo()の失敗の2つの理由が原因であることがわかりました。

達成したいとします

 

このようにスクロールするテキストボックスに長いテキストを表示してから、特定の行を見つける必要があります

scrollView.scrollTo(0, textView.getLineHeight() * lineY);

ただし、テキストが非常に長い場合、失敗することがよくあります。これは、scrollToが失敗するためであり、失敗の理由は、コンポーネントが適切に初期化されていないことが原因である可能性があります。

投稿で、mScroller.startScroll(mScroller.getFinalX()、mScroller.getFinalY()、(int)distanceX、0,200);が200msの遅延理由があるのを見ました。

この問題を解決するには、次のコードで解決できます

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    @Override
    public void run() {
    scrollView.scrollTo(0, textView.getLineHeight() * lineY);
//在该run方法中执行滚动操作
    }
 }, 2000); // 延迟2秒,再运行splashhandler的run()

 

おすすめ

転載: blog.csdn.net/qhlpptdyfn/article/details/89817346