Android はイベント onLongPress をサポートしています。私が持っている質問は、イベントをトリガーするための「プレス」が「どのくらいの長さ」(ミリ秒単位) であるかということです。
6 に答える
標準の長押し時間はgetLongPressTimeout()によって返されるもので、現在は 500 ミリ秒ですが、変更される可能性があります (1.0 では 1000 ミリ秒でしたが、後のリリースで変更されました。将来的にはユーザーがカスタマイズできるようになる可能性があります)。
ブラウザーは、より複雑な操作を行うため、独自の長押し時間を使用します。これは 1000 である必要があると思いますが、これも将来変更される可能性があります。異なるタイムアウトを一緒に追加していません。
getLongPressTimeout
のメソッドを使用して、android.view.ViewConfiguration
この値をプログラムで決定できます。
詳細については、ドキュメントを参照してください。
R.array.long_press_timeout_selector_titlesは次のようになります。
<!-- Titles for the list of long press timeout options. -->
<string-array name="long_press_timeout_selector_titles">
<!-- A title for the option for short long-press timeout [CHAR LIMIT=25] -->
<item>Short</item>
<!-- A title for the option for medium long-press timeout [CHAR LIMIT=25] -->
<item>Medium</item>
<!-- A title for the option for long long-press timeout [CHAR LIMIT=25] -->
<item>Long</item>
</string-array>
<!-- Values for the list of long press timeout options. -->
<string-array name="long_press_timeout_selector_values" translatable="false">
<item>400</item>
<item>1000</item>
<item>1500</item>
</string-array>
うーん...累積時間を取得したいと思っていました。私が知る限り、getLongPressTimeout()は、 event-press が開始されたと判断されたときに追加されるコンポーネント時間であり、 TAP_TIMEOUT と ??? を加えたものです。Web ブラウザの場合は 1000 ミリ秒。
1650msと計算しましたが、結果の値を確認したいと思います。その理由は、長期保有を予測するために SDK と統合されていないものが必要だからです。
getLongPressTimeout の値は 500 ミリ秒だと思いますが、ジェスチャには明らかに時間がかかり、2 秒近くかかります。
View (およびそのサブクラスのほとんど) は getLongPressTimeout を使用します。おそらく、ブラウザでデフォルトのタイムアウトが十分ではありませんでした。