1

WebView の上にあるアドレス バーをスクロールして、Android ブラウザーの動作を模倣しようとしています。ユーザーが下にスクロールすると、アドレス バーが WebView と共に上に「移動」します (ただし、WebView はスクロールしません)。アドレスバーが完全に消えたときにのみ、WebView がスクロールを開始します。最初に、WebView の onScrollChanged メソッドをオーバーライドしようとしましたが、何かを得ましたが、目的の目標ほどスムーズではありませんでした。ドキュメントで WebView が AbsoluteLayout を継承していることに気付いたので、WebView の「ブラウザー」の上にプログラムでビューを追加して、それによって目的のスクロール効果を実現できるかどうか疑問に思っていましたか?


編集

ネイティブ ブラウザ アプリのソース コードを調べてみたところ、setEmbeddedTitleBar(View v)という名前の隠しメソッドがあることがわかりました。

そして、ここに説明があります(Androidソースから):

 /**Add or remove a title bar to be embedded into the WebView, and scroll
 * along with it vertically, while remaining in view horizontally. Pass
 * null to remove the title bar from the WebView, and return to drawing
 * the WebView normally without translating to account for the title bar.
 * @hide*/

これを使用する方法をハックする方法を知っていますか?

4

2 に答える 2

0

おそらくまだreflectionアクセスするために使用できます。見る:

于 2011-02-26T19:19:52.893 に答える
0

私が見る限り、このメソッドは公開されています。だから、あなたはそれを使うことができると思います。

私はちょうどその実装を見てきました。オブジェクトaddView()のメソッドを呼び出すだけです。WebViewしたがって、隠しメソッドを使用したくない場合は、このメソッドを再実装できます。

于 2011-02-24T21:58:05.240 に答える