5

内部に TextView を含む ScrollView があり、HTML のアンカー (page.html#paragraph_id など) のように、特定の段落までスクロールしたいと考えています。

誰もそれを行う方法を知っていますか?

ありがとう!

4

3 に答える 3

1

本当に非常に興味深い質問です。私もそうするのに疲れています。
私が行ったことは、textview - lines を scrollview 座標にマップするというアイデアです。
できることは、デバイスの表示サイズをピクセル単位で取得することです。
および textview by- textview.getLineheight(); の行の高さ。行座標を計算し、それをスクロールビューにマップします
。私が言ったように、私もこれをやろうとしています。私は現在同じことに取り組んでいます。いくつかのコードが機能していることがわかったら、お知らせします。

ここに画像の説明を入力

Android OSはあなた(または私)が望むような種類のスクロールを提供しないか
、各行にテキストビューを用意してこのコードを使用できるため、やるべきことはたくさんあります
mScrollView.scrollTo(0, your_text_view_with_the_line.getBottom());

于 2013-10-25T07:41:08.330 に答える
1

scrollToメソッドを使用してみる詳細情報

フォローコードで確認

TextView tv = (TextView)findViewById(R.id.textView);//my text view
ScrollView sv = (ScrollView) findViewById(R.id.scrollView);//my scrollview
String log ="a Very long text";
tv.setText(log);

sv.post(new Runnable() {

    public void run() {
        sv.scrollTo(0, "value till you want to scroll");
    }
}); 
于 2013-10-25T07:01:37.393 に答える
0

これを試しましたか?

TextView または同様の要素 (あなたの場合は html#paragraph_1) があると想像してください。次に、次の方法でこの要素の最上位を取得できます。

TextView yourTextView = (TextView) findViewById(R.id.tv_your_text_view);
int position = yourTextView.getTop(); // you could also call yourTextView.getBottom()

その後、自分の位置までスクロールできます (このコード スニペットを onClick() メソッドなどに配置して、リンクまたはボタンをクリックしたときにこの位置にジャンプできます)。

ScrollView sc = (ScrollView) findViewById(R.id.scroll_view);

sc.post(new Runnable() { 
    public void run() { 
        sc.scrollTo(0, position); // these are your x and y coordinates
    }
});

注: yourTextViewScrollView レイアウトにあると予想していました。

これが開始に役立つことを願っています。

于 2013-10-25T07:07:18.930 に答える