2009-12-18 15 views

Respuesta

36

El tiempo de prensado prolongado estándar es el que devuelve getLongPressTimeout(), que actualmente es de 500ms pero puede cambiar (en 1.0 fue de 1000ms pero se modificó en una versión posterior, tal vez en el futuro será personalizable por el usuario).

El navegador usa su propio tiempo de prensado prolongado porque tiene interacciones más complicadas. Creo que esto debería ser 1000, aunque nuevamente puede cambiar en el futuro. No agrega los diferentes tiempos de espera juntos.

+0

¿está seguro acerca de esto? Mi observación es 1650ms (1750ms para estar seguro con otra carga de proceso) en el navegador web. ¿Puedes ubicar algunas notas de laboratorio o documentos de Android? – mobibob

+0

.. también, mirando el código fuente, el tiempo LARGO no inicia su medición de tiempo hasta que se detecta una pulsación corta. Es por eso que creo que es acumulativo a lo largo del estado. No estoy desafiando su declaración, solo estoy discutiendo para asegurarme de que la respuesta sea minuciosa y mi pregunta no sea malentendida. – mobibob

+0

Desafortunadamente (para mí) esta es la única respuesta correcta a mi pregunta. Pero ... lo que realmente quería aprender era el tiempo desde el inicio de una retención hasta que el navegador muestra un cuadro de diálogo de "resolución". Estoy midiendo 1.650 segundos, así que quiero encontrar los 650ms que faltan. Voy a otorgar la respuesta a hackbod y agradecer a todos los demás por sus comentarios. – mobibob

17

Puede usar el método getLongPressTimeout en android.view.ViewConfiguration para determinar este valor mediante programación.

Consulte the docs para más detalles.

1

Hmmm ... Esperaba obtener el tiempo acumulativo. Por lo que puedo decir, getLongPressTimeout(), ¿es el tiempo de componente que se agrega cuando se determina que event-press es inicio, más TAP_TIMEOUT, más ??? y luego 1000ms si está en el navegador web.

He calculado que es 1650ms pero me gustaría tener alguna confirmación del valor resultante. La razón es que necesito algo que no esté integrado con el SDK para predecir la retención prolongada.

Creo que el valor de getLongPressTimeout es de 500ms, pero el gesto claramente lleva más tiempo, más cerca de 2 segundos.

0

Ver (y, por lo tanto, la mayoría de sus subclases) utiliza getLongPressTimeout. Quizás el tiempo de espera predeterminado no fue suficiente en el navegador.

1

Generalmente, like Roman Nurik mentioned, puede usar ViewConfiguration.getLongPressTimeout() para obtener programáticamente valor de valor de pulsación larga. El valor predeterminado es 500ms.

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

Pero, la duración de la pulsación larga se puede personalizar globalmente al configurarla en accesibilidad. Los valores son Corto (400 ms), Medio (1000 ms) o Largo (1500 ms). Se puede ver su código fuente en 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]); 
    } 
} 
0

Esto es lo que parece a 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>

Cuestiones relacionadas