문제

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을 사용합니다. 아마도 기본 타임 아웃은 브라우저에서 충분하지 않았을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top