안드로이드에서 이벤트의 Onlongpress는 얼마나 걸립니까?
문제
Android는 Onlongpress 이벤트를 지원합니다. 내가 가지고있는 질문은 '얼마나 오래'(밀리 초) 이벤트를 트리거하는 '프레스'가 있습니까?
해결책
표준 긴 프레스 타임은 getLongpressTimeout (), 현재 500ms이지만 변경 될 수 있습니다 (1.0에서는 1000ms이지만 나중에 릴리스에서 변경되었습니다. 앞으로는 사용자 가시 적 가능할 것입니다).
브라우저는 더 복잡한 상호 작용이 있기 때문에 자체 긴 프레스 타임을 사용합니다. 나는 이것이 1000이어야한다고 생각하지만, 앞으로 다시 변할 수 있습니다. 다른 타임 아웃을 함께 추가하지 않습니다.
다른 팁
당신은 사용할 수 있습니다 getLongPressTimeout
방법 android.view.ViewConfiguration
프로그래밍 방식 으로이 값을 결정합니다.
보다 문서 자세한 내용은.
일반적으로, 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;
그러나 긴 프레스 기간은 접근성을 설정하여 전 세계적으로 사용자 정의 할 수 있습니다. 값은 짧은 (400ms), 중간 (1000ms) 또는 길이 (1500ms)입니다. 소스 코드를 볼 수 있습니다 설정:
// 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]);
}
}
이것이 무엇입니다 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 (), 이벤트 프레스가 시작되는 것으로 판단 될 때 추가되는 구성 요소 시간, 탭 _timeout, plus ??? 웹 브라우저에있는 경우 1000ms.
나는 그것을 1650ms로 계산했지만 결과적인 값. 그 이유는 장거리를 예측하기 위해 SDK와 통합되지 않은 것이 필요하기 때문입니다.
GetLongpressTimeout의 값은 500ms라고 생각하지만 제스처는 분명히 2 초에 가깝습니다.
보기 (및 대부분의 서브 클래스)는 getLongPressTimeout을 사용합니다. 아마도 기본 타임 아웃은 브라우저에서 충분하지 않았을 것입니다.