Scale および Scroll イベントに応答するコントロールを含む 2 つのタブを持つ TabActivity があります。
最初にアプリを起動すると、タブ 1 で開始され、最初のタブのアクティビティに表示されるビューをスケーリングおよびスクロールできます。
再びタブ 2 に切り替えると、2 番目のタブのアクティビティに表示されるビューを拡大縮小およびスクロールできます。
すべてが良さそうです。
突然最初のタブに戻ると、拡大縮小もスクロールもできなくなります。もう一度2番目に戻すと、それは正常に機能します。タッチ フォーカスが 2 番目のタブのビューによって取得され、放棄されていないかのようです。
1 つのアクティビティがバックグラウンドになったときに GestureDetector が何らかの形で破壊された場合に備えて、GestureDetectors の再初期化も試みました。
次のコードを無駄に試しました:
public void onPause()
{
super.onPause();
mView.clearFocus();
}
public void onResume()
{
super.onResume();
mView.requestFocus();
mView.InitGestureDetectors( this );
}
InitGestureDetectors は単純に次のことを行います。
public void InitGestureDetectors( Context ctx )
{
mScaleGestureDetector = new ScaleGestureDetector( ctx, new ScaleGestureListener() );
mGestureDetector = new GestureDetector( ctx, new GestureListener() );
}
その後タブを切り替えたときに、タッチジェスチャを再び機能させる方法を誰か教えてもらえますか?