質問

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

どのような方法がこの問題を回避ありますか?

編集:ここでの解決策だ。

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

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

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

アンその後、showメソッドで

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

    animationHandler_ = new Handler();
    animationHandler_.post(animateTask_);
    requestFocus();
}
役に立ちましたか?

解決

onTrackballEvent()をチェックしてくださいの方法。そして、直接に何もしない方法でtrueを返すようにしてください。これは、すぐにイベントを殺す必要があります。

他のヒント

あなたの活動が画面に表示されている間、何もして、あなたのトラックボールを防ぐために、あなたの活動のサブクラスに次のコードを追加します。

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

私はGoogleのNexus Oneの携帯電話上でこれをテストしてみたし、それはうまく動作します。

onTrackballEventを(オーバーライド)が動作しません。 dispatchTrackballEventをオーバーライドしてみてください()、単にtrueを返すことで何もしない;ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top