Androidの場合、View.onLongClickListener()
は長いクリックとして扱うのに約1秒かかります。長いクリックのレスポンス時間を設定するにはどうすればよいですか?LongClickの応答時間を設定する方法は?
答えて
デフォルトのタイムアウトはViewConfiguration.getLongPressTimeout()
で定義されています。
独自の長押しを実装することができます
boolean mHasPerformedLongPress;
Runnable mPendingCheckForLongPress;
@Override
public boolean onTouch(final View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
if (!mHasPerformedLongPress) {
// This is a tap, so remove the longpress check
if (mPendingCheckForLongPress != null) {
v.removeCallbacks(mPendingCheckForLongPress);
}
// v.performClick();
}
break;
case MotionEvent.ACTION_DOWN:
if(mPendingCheckForLongPress == null) {
mPendingCheckForLongPress = new Runnable() {
public void run() {
//do your job
}
};
}
mHasPerformedLongPress = false;
v.postDelayed(mPendingCheckForLongPress, ViewConfiguration.getLongPressTimeout());
break;
case MotionEvent.ACTION_MOVE:
final int x = (int) event.getX();
final int y = (int) event.getY();
// Be lenient about moving outside of buttons
int slop = ViewConfiguration.get(v.getContext()).getScaledTouchSlop();
if ((x < 0 - slop) || (x >= v.getWidth() + slop) ||
(y < 0 - slop) || (y >= v.getHeight() + slop)) {
if (mPendingCheckForLongPress != null) {
v. removeCallbacks(mPendingCheckForLongPress);
}
}
break;
default:
return false;
}
return false;
}
ありがとう。私はlongClickイベントをあきらめ、MotionEventを使用しています。実際、私はMotionEventのように始まりました。なぜなら、これはlongClickよりもはるかに早く導入されたからです(API 11の後のみ)。それは、より多くのAndroidの携帯電話で私のアプリをより簡単にする。私は、Java/OracleがlongClickを単純なparaをsec/milsecとして導入することを願っています – user1234817
"mHasPerformedLongPress"は本当に設定されませんか? – wangqi060934
これは答えることが後半が、必要な誰かの場合であってもよいです。
あなたの携帯電話がルートされている場合は、タイムアウトを変更することができます。 データベースの値を希望のタイムアウト値に設定するだけです。これは、システム全体の長押しイベントに影響します。
ディレクトリ:settings.db
テーブル:::
名を確保
ファイルを/data/data/com.android.providers.settings/databases long_press_timeout
コーディングによって?システムアプリの特権が必要な場合があります。実際にはそれほど確かではない。 しかし、あなたが戻ってViewConfiguration.getLongPressTimeout()メソッドを追跡する場合は、一定の値がsettings.dbセット操作がで書かれている
タイムアウトのマッピングであるSettings.Secure.LONG_PRESS_TIMEOUTから来ていることがわかりますすべてのビューに影響するようにクラスを表示します。
- 1. Xamarin.Android。 LongClickイベントの設定時間
- 2. タブレットのタッチ応答時間を測定する方法は?
- 3. Loadrunnerでレンダリング時間を含む応答時間を測定する方法は?
- 4. mitmproxy、応答時間/通話時間の取得方法は?
- 5. 応答タイムアウトのデフォルト時間を延長する方法は?
- 6. Nodejsが応答時間を指定して応答を返す
- 7. LoadRunner TruClient - ページの応答時間を正しく測定する方法は?
- 8. API呼び出しの応答時間を測定する方法は?
- 9. WSO2 APIMクラスタリング - 応答時間を改善する方法は?
- 10. SOAPサーバーSymfony応答の設定方法
- 11. clickとlongclickの両方がリストビューで応答します
- 12. Android最終のユーザー応答時間を取得する方法
- 13. http応答のサーバーステータスコードを設定する方法は?
- 14. CXFクライアントでSOAP応答のエンコーディングを設定する方法は?
- 15. スラッシュコマンドの応答をチャネル全体に設定する方法は?
- 16. タスク間の応答時間を測定する
- 17. 応答時間に基づいてループ内のタイマーを設定する方法は?
- 18. Apache応答時間
- 19. Node.JS応答時間
- 20. 応答時間が再設定されました
- 21. JmeterでRestcall応答時間を計算する方法
- 22. 応答時間を短縮する方法
- 23. 応答時間パフォーマンステストからボトルネックを検出する方法
- 24. Jetty 7/8でJSP応答ロケールを設定する方法は?
- 25. odoo応答時間のパフォーマンスを向上させる方法
- 26. コール間の時間の設定方法
- 27. SSRS 2008の問題:応答時間を増やす方法
- 28. cassandraクエリ応答時間の検索方法は?
- 29. UIDatePickerViewの時間間隔を設定する方法は?
- 30. urllibのPython応答時間
この時間はあなたの活動ではなく、ROMによって定義されているようです。 – Huang
この問題を回避するための考え方。私は単に、onLongClick Listenerの応答時間を短縮したいと思います。btw:ドラッグ/ドロップに関連するアクティビティに使用します。 – user1234817
あなたはその長いクリック操作で何をしたいですか? –