在Android的onLongPress事件有多长时间?

Android支持onLongPress事件。 我的问题是“多久”(以毫秒为单位)是触发事件的“新闻”?

Solutions Collecting From Web of "在Android的onLongPress事件有多长时间?"

标准的长按时间是getLongPressTimeout()返回的值 ,它现在是500毫秒,但可能会改变(在1.0中是1000毫秒,但在以后的版本中有变化,将来可能会是用户可定制的)。

浏览器使用自己的长按时间,因为它有一些更复杂的交互。 我相信这应该是1000,但是将来也可能会改变。 这不是将不同的超时加在一起。

您可以使用android.view.ViewConfigurationgetLongPressTimeout方法以编程方式确定此值。

有关详细信息,请参阅文档 。

嗯…我希望能得到累积的时间。 据我所知, getLongPressTimeout() ,是确定事件按下时添加的组件时间加上TAP_TIMEOUT加上? 如果在networking浏览器中则为1000毫秒。

我已经计算出它是1650毫秒,但是我想对结果值有一些确认。 原因是我需要一些不与SDK集成的东西来预测长期持有。

我相信getLongPressTimeout的价值是500毫秒,但手势明显需要更长的时间 – 接近2秒。

通常, 像Roman Nurik提到的那样 ,您可以使用ViewConfiguration.getLongPressTimeout()以编程方式获取长按值的值。 默认值是500ms。

 /** * Defines the default duration in milliseconds before a press turns into * a long press */ private static final int DEFAULT_LONG_PRESS_TIMEOUT = 500; 

但是,通过将其设置为可访问性,可以在全球定制长时间的持续时间。 值为短(400毫秒),中(1000毫秒)或长(1500毫秒)。 你可以在Settings中看到它的源代码:

 // Long press timeout. mSelectLongPressTimeoutPreference = (ListPreference) findPreference(SELECT_LONG_PRESS_TIMEOUT_PREFERENCE); mSelectLongPressTimeoutPreference.setOnPreferenceChangeListener(this); if (mLongPressTimeoutValueToTitleMap.size() == 0) { String[] timeoutValues = getResources().getStringArray( R.array.long_press_timeout_selector_values); mLongPressTimeoutDefault = Integer.parseInt(timeoutValues[0]); String[] timeoutTitles = getResources().getStringArray( R.array.long_press_timeout_selector_titles); final int timeoutValueCount = timeoutValues.length; for (int i = 0; i < timeoutValueCount; i++) { mLongPressTimeoutValueToTitleMap.put(timeoutValues[i], timeoutTitles[i]); } } 

查看(因此大多数的子类)使用getLongPressTimeout。 在浏览器中,默认的超时时间可能不够用。

这是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>