内部に TextView を含む ScrollView があり、HTML のアンカー (page.html#paragraph_id など) のように、特定の段落までスクロールしたいと考えています。
誰もそれを行う方法を知っていますか?
ありがとう!
内部に TextView を含む ScrollView があり、HTML のアンカー (page.html#paragraph_id など) のように、特定の段落までスクロールしたいと考えています。
誰もそれを行う方法を知っていますか?
ありがとう!
本当に非常に興味深い質問です。私もそうするのに疲れています。
私が行ったことは、textview - lines を scrollview 座標にマップするというアイデアです。
できることは、デバイスの表示サイズをピクセル単位で取得することです。
および textview by- textview.getLineheight(); の行の高さ。行座標を計算し、それをスクロールビューにマップします
。私が言ったように、私もこれをやろうとしています。私は現在同じことに取り組んでいます。いくつかのコードが機能していることがわかったら、お知らせします。
Android OSはあなた(または私)が望むような種類のスクロールを提供しないか
、各行にテキストビューを用意してこのコードを使用できるため、やるべきことはたくさんあります
mScrollView.scrollTo(0, your_text_view_with_the_line.getBottom());
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");
}
});
これを試しましたか?
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
}
});
注: yourTextView
ScrollView レイアウトにあると予想していました。
これが開始に役立つことを願っています。