2012-01-29 21 views
5

से फ्लेक्स रोकें नरम कुंजीपटल मैं एक साधारण लेआउट के साथ एक मोबाइल आकाशवाणी अनुप्रयोग है:समापन

<s:layout><s:VerticalLayout /></s:layout> 

<s:TextArea width="100%" height="100%" /> 

<HGroup width="100%" > 
    <s:Button label="button" /> 
    <s:Button label="button" /> 
    <s:Button label="button" /> 
</HGroup> 

आवेदन आकार बदलने के लिए जब मुलायम कीबोर्ड मुख्य अनुप्रयोग में resizeForSoftKeyboard = "true" की स्थापना करके खोलता है निर्धारित है। टेक्स्ट एरिया डिफ़ॉल्ट फ्लेक्स 4.6 त्वचा का उपयोग करता है।
मेरी समस्या यह है कि यदि उपयोगकर्ता मेरे texArea में टेक्स्ट टाइप करके कीबोर्ड खोलता है, तो वह टेक्स्टएरिया के नीचे दिए गए बटनों पर क्लिक करने में असमर्थ होगा, क्योंकि जैसे ही वह बटन पर क्लिक करने की कोशिश करता है, सॉफ्ट कीबोर्ड कम होता है (क्योंकि फोकस यह TextArea से बाहर है?) और तुरंत खुलता है (क्योंकि माउसडाउन स्थिति अब टेक्स्ट एरिया से ऊपर है?)।

मैं सॉफ्ट कीबोर्ड को बंद होने से कैसे रोक सकता हूं, तो उपयोगकर्ता टेक्स्टएरिया और कीबोर्ड के बीच बटन क्लिक करने में सक्षम है?

धन्यवाद

उत्तर

0

हो सकता है कि जब बटन है कि बटन पर क्लिक करें ईवेंट हैंडलर में अर्थात क्लिक किया जाता है कीबोर्ड को सामने लाने में कोई ईवेंट जोड़ें।

इसके अलावा (और मैं इस अपने आप की कोशिश की havnt), लेकिन उस दृश्य के लिए कीबोर्ड के लिए निष्क्रिय स्थिति में, event.preventDefault जोड़ने()

ब्रायन

+0

मैंने दोनों की कोशिश की है। समस्या यह है कि बटन क्लिक नहीं किया जाता है। मुझे लगता है कि यह घटनाओं का क्रम है: 1. टेक्स्ट एरिया फोकस खो देता है 2. कीबोर्ड नीचे चला जाता है, कीबोर्ड निष्क्रिय प्रेषण ईवेंट को प्रेषित करता है। 3. माउसडाउन (विस्तारित) टेक्स्ट एरिया पर पंजीकृत है, इसलिए कीबोर्ड बैक अप आता है। – sydd

1

यह बहुत ही अजीब है। मैं अपने आप को अपने कार्यक्रम चलाने की कोशिश की, और मैं सभी में कोई परेशानी है:

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
      xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="320" resizeForSoftKeyboard="true"> 
    <s:layout><s:VerticalLayout /></s:layout> 

    <s:TextArea width="100%" height="100%" /> 

    <s:HGroup width="100%" > 
     <s:Button label="button" click="trace('clicked')"/> 
     <s:Button label="button" click="trace('clicked')" /> 
     <s:Button label="button" click="trace('clicked')" /> 
    </s:HGroup> 
</s:Application> 

कीबोर्ड खुल जाता है जब मैं पाठ क्षेत्र स्पर्श, बंद कर देता है जब मैं एक बटन पर क्लिक करें (फिर से खोलने के बिना), और क्लिक में दिखाने डीबगिंग करते समय कंसोल।

आपने पूरा ऐप पोस्ट नहीं किया है, क्या आपके पास पूरे कार्यक्रम में कुछ भी है जो मैं नहीं करता? उस स्थिति में, मैं देखता हूं कि इनमें से कोई यूआई में हस्तक्षेप कर सकता है या नहीं।