2012-01-19 14 views
4

私はWebViewを持っており、テキストにマークを付ける(私はhtmlの記号►を使用しています)。これらのマーキングのうちほぼ10個のファイルがあります。WebViewをAndroid上の特定のポイントにスクロールするには

私はTextViewには、これを行うと、かなり簡単にそれを行っている:

int offset=texto.indexOf("SPECIFIC MARKING ON TEXT"); 
    final int line = textview.getLayout().getLineForOffset(offset); 
    final int y = textview.getLayout().getLineTop(line); // e.g. I want to scroll to line 
    final ScrollView s = (ScrollView)findViewById(R.id.ScrollView01); 
    s.post(new Runnable() { 
     @Override 
     public void run() { 
      s.smoothScrollTo(0, y); 
     } 
    }); 

をしかし、どのように、私はWebViewの上でそれを達成できますか? 私がWebviewを使用している理由は、より良いテキスト書式設定によるものです。

+0

本当に必要な書式のテキストであれば、[Html.fromHtml](http://developer.android.com/reference/android/text/Html.html)を使用してTextViewでHTML書式を取得して、 Spanned、TextViewに追加することができます。 – Zenanon

+0

私はすでにそれを試みましたが、私は使用している書式を読むことができないと思います。太字、下線付きのテキスト、黄色の背景(強調表示された)テキストおよびitallic。私は単語をHTMLエディタに貼り付けて、それは良い結果を与えません。 – theAnquisp

答えて

2

実際、WebViewではさらに簡単です。最初の発生にはfindAll methodを使用し、次のマーカーにはfindNext(true)を使用できます。ビューは要求されたテキストに自動的にスクロールします。

+0

こんにちは、それは自動スクロールの良い解決策です。しかし、デバイスの下部にある要求されたテキストにスクロールします。私は画面の要求されたテキストの上にスクロールしたい。このための任意のソリューションですか? –

+0

これを使用して、スクロール位置をビューの高さから近似テキストの高さを差し引いてオフセットします。私は推測するだろう。 –

関連する問題