2009-12-18 10 views
33

एंड्रॉइड लॉन्गप्रेस पर एक ईवेंट का समर्थन करता है। मेरे पास सवाल यह है कि घटना को ट्रिगर करने के लिए 'कितनी देर' (मिलीसेकंड में) 'प्रेस' है?Android पर LongPress पर ईवेंट कब तक है?

उत्तर

36

मानक लंबे प्रेस समय getLongPressTimeout() द्वारा वापस किया जाता है, जो वर्तमान में 500ms है लेकिन बदल सकता है (1.0 में यह 1000ms था लेकिन बाद में रिलीज में बदल गया; शायद भविष्य में यह उपयोगकर्ता-अनुकूलन योग्य होगा)।

ब्राउज़र अपने लंबे प्रेस समय का उपयोग करता है क्योंकि इसमें कुछ और जटिल इंटरैक्शन हैं। मेरा मानना ​​है कि यह 1000 होना चाहिए, फिर भी यह भविष्य में बदल सकता है। यह एक साथ विभिन्न टाइमआउट जोड़ नहीं रहा है।

+0

आप इस बारे में कुछ कर रहे हैं? वेब ब्राउज़र पर मेरा अवलोकन 1650ms (1750ms अन्य प्रक्रिया लोड के साथ निश्चित होना) है। क्या आप कुछ प्रयोगशाला नोट्स या एंड्रॉइड दस्तावेज़ों को साइट कर सकते हैं? – mobibob

+0

.. भी, स्रोत कोड को देखते हुए, लंबे समय के बाद तक लंबे समय तक पता चला है, लंबे समय तक इसका समय माप शुरू नहीं होता है। यही कारण है कि मेरा मानना ​​है कि यह राज्य के साथ संचयी है। मैं आपके बयान को चुनौती नहीं दे रहा हूं, बस यह सुनिश्चित करने के लिए चर्चा कर रहा हूं कि उत्तर पूरी तरह से है और मेरा प्रश्न गलत समझा नहीं गया है। – mobibob

+0

दुर्भाग्य से (मेरे लिए) यह मेरे प्रश्न का एकमात्र सही उत्तर है। लेकिन ... जो मैं वास्तव में सीखना चाहता था वह प्रेस-होल्ड की शुरुआत से समय था जब तक कि ब्राउज़र 'रिज़ॉल्वर' संवाद पॉप-अप नहीं करता। मैं 1.650 सेकेंड माप रहा हूं इसलिए मैं लापता 650 एमएमएस ढूंढना चाहता हूं। मैं हैकबोड का जवाब देने जा रहा हूं और उनकी टिप्पणियों के लिए हर किसी का धन्यवाद करता हूं। – mobibob

17

प्रोग्रामिंग रूप से इस मान को निर्धारित करने के लिए आप android.view.ViewConfiguration में getLongPressTimeout विधि का उपयोग कर सकते हैं।

विवरण के लिए the docs देखें।

1

हमम ... मैं जमा करने का समय प्राप्त करने की उम्मीद कर रहा था। जहां तक ​​मैं कह सकता हूं, getLongPressTimeout(), वह घटक समय है जिसे ईवेंट-प्रेस शुरू होने के लिए निर्धारित किया जाता है, साथ ही TAP_TIMEOUT, प्लस ??? और फिर वेब ब्राउज़र में 1000ms।

मैंने इसकी गणना 1650ms की है, लेकिन मैं परिणाम मान की कुछ पुष्टि करना चाहता हूं। इसका कारण यह है कि मुझे ऐसा कुछ चाहिए जो एसडीके के साथ लंबे समय तक चलने की भविष्यवाणी करने के लिए एकीकृत न हो।

मुझे विश्वास है कि getLongPressTimeout से मान 500ms है, लेकिन इशारा स्पष्ट रूप से अधिक समय लेता है - 2 सेकंड के करीब।

0

देखें (और इसलिए इसके अधिकांश उप-वर्ग) getLongPressTimeout का उपयोग करते हैं। शायद ब्राउज़र में डिफ़ॉल्ट टाइमआउट पर्याप्त नहीं था।

1

आम तौर पर, like Roman Nurik mentioned, आप लंबे समय तक प्रेस मूल्य मान प्राप्त करने के लिए 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]); 
    } 
} 
0

यह वही है की तरह लग रहे 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>

संबंधित मुद्दे