2

カスタム進行状況ダイアログの実装でいくつかの問題が発生しました。オーバーレイがタッチイベントをインターセプトしても、ユーザーはトラックボールを操作して、無効になっているはずの要素をクリックすることができます。

これを回避する方法はありますか?

編集:ここに解決策があります

//=====================================================================================
protected void showProgressIndicator()
{
    progressIndicator_.show();
}

//=====================================================================================
@Override
public boolean onTrackballEvent(MotionEvent event)
{
    return progressIndicator_.getVisibility() == View.VISIBLE;
}

//=====================================================================================
protected void hideProgressIndicator()
{
    progressIndicator_.hide();
}

theninshowメソッド

//=====================================================================================
public void show()
{
    setVisibility(VISIBLE);
    if (animationHandler_ != null)
        return;

    animationHandler_ = new Handler();
    animationHandler_.post(animateTask_);
    requestFocus();
}
4

3 に答える 3

1

アクティビティが画面に表示されているときにトラックボールが何かを実行しないようにするには、次のコードをActivityサブクラスに追加します。

@Override 
public boolean dispatchTrackballEvent(android.view.MotionEvent ev) {
  return true;
};

私はこれをGoogleNexusOne電話でテストしましたが、正常に動作します。

于 2012-01-12T12:22:43.000 に答える
0

onTrackballEvent()メソッドを確認してください。次に、メソッドで何もせずに、メソッドで直接trueを返すようにします。これにより、イベントがすぐに終了します。

于 2010-08-06T14:12:21.510 に答える
0

onTrackballEvent()のオーバーライドは機能しません。dispatchTrackballEvent()をオーバーライドしてみてください。何もしないで、trueを返します。

于 2011-09-29T05:49:27.183 に答える