0

WebView複数の を並べて使用してコンテンツを表示するアプリがあります。1 つを垂直にスクロールし、最初のスクロールが完全に停止する前に別のスクロールをすると、以下のスタック トレースで例外が発生します。スタックの最初の行は、私にとって最も不可解です。VelocityTrackera が何であるか、または他の変数が何を参照しているのかわかりません。

11-30 10:47:04.740: E/webview(2199): Got null mVelocityTracker when mPreventDefault = 0 mDeferTouchProcess = false mTouchMode = 3
11-30 10:50:23.771: D/AndroidRuntime(2199): Shutting down VM
11-30 10:50:23.771: W/dalvikvm(2199): threadid=1: thread exiting with uncaught exception (group=0x40015560)
11-30 10:50:23.795: E/AndroidRuntime(2199): FATAL EXCEPTION: main
11-30 10:50:23.795: E/AndroidRuntime(2199): java.lang.NullPointerException
11-30 10:50:23.795: E/AndroidRuntime(2199):     at android.webkit.WebView.onTouchEvent(WebView.java:5283)
11-30 10:50:23.795: E/AndroidRuntime(2199):     at android.view.View.dispatchTouchEvent(View.java:3885)
11-30 10:50:23.795: E/AndroidRuntime(2199):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:903)
11-30 10:50:23.795: E/AndroidRuntime(2199):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
11-30 10:50:23.795: E/AndroidRuntime(2199):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
11-30 10:50:23.795: E/AndroidRuntime(2199):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
11-30 10:50:23.795: E/AndroidRuntime(2199):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
11-30 10:50:23.795: E/AndroidRuntime(2199):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
11-30 10:50:23.795: E/AndroidRuntime(2199):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
11-30 10:50:23.795: E/AndroidRuntime(2199):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1702)
11-30 10:50:23.795: E/AndroidRuntime(2199):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1125)
11-30 10:50:23.795: E/AndroidRuntime(2199):     at android.app.Activity.dispatchTouchEvent(Activity.java:2132)
11-30 10:50:23.795: E/AndroidRuntime(2199):     at
...

サブクラス化された を使用していますが、メソッドWebViewをオーバーライドしていません。onTouchEvent()

興味深いことに、このエラーは、使用している OS v2.3 デバイスと OS v2.x エミュレーターでのみ見つかります。4.x デバイスでテストするときはいつでも、すべて問題なく、すべての WebView でタッチとスクロールを同時に処理できます。

何が起こっている?これは Android の既知のバグですか? 同様の状況の記録は見つかりませんでした。回避策の提案はありますか? WebViewそのうちの1つがスクロールしている限り、他の s が触れられないようにすることはできますが、それはばかげているようです。

4

1 に答える 1

0

問題の原因はわかりましたが、本当の問題はわかりませんでした。

すべてのイベントが渡されない場合の問題を説明したこのリンクに出くわしました。私はを返すことによって最初のイベントを処理し、それから を返すことによって後続のイベントを渡すs にセットを持っていました。WebViewonTouchonTouchListenerWebViewonTouchtruefalse

OS の一部のバージョンでは、すべてのonTouchイベントを処理できない場合に問題が発生するようです。

于 2012-12-04T16:00:36.073 に答える