2013-11-14 17 views
8

मैं एक PhoneGap आधारित अनुप्रयोग विकसित कर रहा हूँ काम करने के लिए प्रतीत नहीं होता है और मैं कैसे जब वर्चुअल कीबोर्ड प्रकट होता है मेरी वेबव्यू इसकी ऊंचाई को समायोजित करने के लिए के बारे में ज्यादा googled, या कम से कम की ऊंचाई प्राप्त वर्चुअल कीबोर्ड। मैं जो किएंड्रॉयड + PhoneGap: एंड्रॉयड: windowSoftInputMode

android:windowSoftInputMode="adjustResize" 

प्रकट में सेट किया जाना चाहिए और मैंने वह किया कहते पदों (stackoverflow सहित) का एक बहुत मिल गया। मैंने यह भी पाया कि फोनगैप config.xml के लिए

<preference name="android-windowSoftInputMode" value="adjustResize"/> 

सेटिंग और मैंने इसे चिपकाया। मैंने दोनों मानकों के लिए संयुक्त मूल्य 'राज्य दृश्यमान | समायोजन' (केवल 'समायोजित करें' नहीं) की कोशिश की, लेकिन ऐसा लगता है कि दोनों के पास कोई प्रभाव नहीं है। मुझे नहीं पता, शायद मैं कुछ गलत कर रहा हूं, लेकिन आप एमुलेटर से स्क्रीनशॉट देख सकते हैं (एंड्रॉइड 4.0.3, लेकिन मैंने 4.1.2 और 4.2.2 भी कोशिश की):
http://screencast.com/t/Mm0mw8c693 - कीबोर्ड दृश्यमान
http://screencast.com/t/lZ2DomqeRR - कुंजीपटल छिपा
स्क्रीनशॉट मैं जानबूझकर मेरी प्रकट और config.xml सेटिंग्स पर कब्जा कर लिया पर, ताकि आप वे वास्तव में वहाँ हो देख सकते हैं। http://screencast.com/t/xI9PMcMJxxx

जैसा कि आप देख सकते हैं, कोई किसी भी व्यूपोर्ट आकार बदलने होते हैं जब कीबोर्ड से पता चला/छिपा -
मैं भी लघु वीडियो दर्ज की गई। मैंने window.innerHeight को console.log() का उपयोग करके भी देखा और यह दृश्यमान और छिपे हुए कीबोर्ड दोनों के लिए समान रहता है।

कृपया, मुझे कुछ सलाह दे।

+0

क्या आपने इस मुद्दे को हल किया? यदि ऐसा है, तो कृपया अपना समाधान पोस्ट करें और इसे सही उत्तर के रूप में चिह्नित करें! –

उत्तर

6

windowSoftInputMode="adjustResize" कि आपके ऐप में पूर्ण स्क्रीन मोड में है (config.xml में true को fullscreen की स्थापना) काम नहीं करता। यह एंड्रॉइड का मुद्दा कॉर्डोवा नहीं है। the issue CB-4404 महीनों के लिए Cordova बग ट्रैकर में दायर किया गया था लेकिन हाल ही में यह पता चला है कि it is working as intended एंड्रॉयड बग ट्रैकर पर।

मैंने fullscreen को false पर सेट करके समस्या हल की क्योंकि यह मेरे ऐप के लिए पूर्णस्क्रीन नहीं जाने की समस्या नहीं थी।

1

मैंने पाया मैं इस समस्या को हल, और दृश्य से बाहर स्क्रॉल जब मुलायम कीबोर्ड को सामने लाया गया, जो अपने आप को छुपा से ActionBar को रोकने के लिए 3 चीजें करने के लिए की जरूरत है।

android:windowSoftInputMode="adjustResize" 

मूल समस्या यह है कि adjustPan उपरोक्त पंक्ति में मौजूद था है:

1) AndroidManifest.xml में, विचाराधीन गतिविधि में, मैं लाइन की जरूरत है। सबसे पहले, बस समस्या को ठीक करने के लिए समस्या।

परियोजना मैं पर हूँ टुकड़े का उपयोग करता है। onCreateView विधि में, एक अलग टुकड़ा लाइन थी:

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 

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

2) मैंने उस अन्य खंड के ऑनक्रेट व्यू विधि से SOFT_INPUT_ADJUST_PAN लाइन को हटा दिया, क्योंकि उसे वैसे भी उस लाइन की आवश्यकता नहीं थी।असल में

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 

, समस्या का समाधान होगा 2 आइटम या 3 से कोई एक कार्य:

3) टुकड़ा जिसके साथ मैं मुख्य रूप से चिंतित हूँ की onCreateView विधि में, मैं लाइन गयी। मैंने दोनों को पूरी तरह से किया।

0

या तो आप एंड्रॉइड.एमनिफेस्ट में इस संपत्ति को स्पष्ट रूप से "समायोजित करने" के लिए सेट कर सकते हैं तो आपको "पूर्णस्क्रीन" मोड को गलत पर सेट करने की आवश्यकता नहीं है। लेकिन जब भी आप अपडेट/एंड्रॉइड प्लेटफॉर्म जोड़ते हैं तो आपको इसे अपडेट करना होगा।

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