2012-07-12 6 views
5

एंड्रॉइड इनपुट मोड को पारदर्शी बनाने की कोशिश कर रहा है - यानी अंतर्निहित सामग्री उस कुंजीपटल के माध्यम से दिखाती है जो मैं विकसित कर रहा हूं।एंड्रॉइड के लिए पारदर्शी इनपुट मोड

मैं यह देखने में सक्षम हूं कि मैं सिस्टम को पारदर्शी रूप से पास करता हूं - मुझे लगता है - लेकिन मेरे दृश्य के नीचे कुछ ऐसा लगता है जो ठोस सफेद है - और अंतर्निहित सामग्री को खराब कर रहा है।

यह निश्चित रूप से संभव है, इन लोगों में यह कार्य करें:

https://play.google.com/store/apps/details?id=com.aitype.android.tablet.p&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5haXR5cGUuYW5kcm9pZC50YWJsZXQucCJd

+1

क्या आपने कभी यह पता लगाया है? मैं वही काम करने की कोशिश कर रहा हूं, और एक ही मुद्दे में चल रहा हूं। –

उत्तर

5

मैं यह पता लगा! निश्चित नहीं है कि अगर आपके प्ले स्टोर लिंक में लोग इसे करते हैं, लेकिन यह मेरे लिए काम करता है। साथ ही, मुझे एहसास है कि यह पोस्ट एक वर्ष से अधिक पुराना है, लेकिन मैं अभी भी जवाब दे रहा हूं अगर कोई अन्य व्यक्ति पारदर्शी कीबोर्ड बनाने की कोशिश करते समय इसे खोजता है।

आपके विचार के तहत "कुछ" वास्तव में कुछ भी नहीं है - यह खाली जगह है। आपके कीबोर्ड ने अपनी ऊंचाई के लिए कमरे बनाने के लिए पूरे दृश्य को ऊपर और बाहर धक्का दिया, जिससे खाली सफेद जगह पीछे छोड़ दी गई। आपका पारदर्शी कीबोर्ड इस श्वेत स्थान को दिखाता है।

यहां समाधान है: क्रिएटइनपुट व्यू में अपना दृश्य वापस करने के बजाय, इसे क्रिएट कैंडीडेट्स व्यू में वापस कर दें। यही वह दृश्य है जो आमतौर पर कीबोर्ड से ऊपर रहता है और स्वत: सुधार सुझावों को सूचीबद्ध करता है। लेकिन आप इसका उपयोग अपने वास्तविक कीबोर्ड को घर में करने के लिए करेंगे।

कारण आप अपना कीबोर्ड उम्मीदवार बनना चाहते हैं क्योंकि इनपुट दृश्य अक्सर अंतर्निहित दृश्य को धक्का देता है। व्यक्तिगत ऐप्स यह तय कर सकते हैं कि जब कीबोर्ड एंड्रॉइड के माध्यम से दिखाया जाता है तो वे व्यवहार कैसे करना चाहते हैं: windowSoftInputMode और इनपुट व्यू उनकी वरीयता का सम्मान करता है, लेकिन उम्मीदवार हमेशा एड्रेसपैन का उपयोग करते हैं।

डॉक्स से: "ध्यान दें कि चूंकि उम्मीदवार दृश्य दिखाया गया है और एक बहुत छिपा हो जाता है, यह नरम इनपुट दृश्य के रूप में एक ही तरीके से आवेदन यूआई को प्रभावित नहीं करता: यह कारण कभी नहीं होगा आवेदन खिड़कियों का आकार बदलने के, उपयोगकर्ता को वर्तमान फोकस देखने के लिए जरूरी होने पर ही उन्हें पॅन किया जा सकता है। " http://developer.android.com/reference/android/inputmethodservice/InputMethodService.html

तो,, onCreateCandidatesView से अपने पारदर्शी दृश्य लौट onCreateInputView से अशक्त लौट सकते हैं और कॉल करने के लिए setCandidatesViewShown (सही) यह सुनिश्चित कर लें तो अपने उम्मीदवारों देखने दिखाता है (मैं onWindowShown में यह कहते हैं)।

+0

इसका मतलब यह नहीं है कि ऐप का इनपुट इसके लेआउट के नीचे है तो वही बात होगी? इसे अस्पष्ट करने से बचने के लिए, एंड्रॉइड ऐप को पैन करेगा ताकि यह कीबोर्ड के पीछे एक खाली छोड़कर स्क्रीन के शीर्ष पर जा सके। –

+0

यदि आप CREateInputView पर उपयोग करते हैं तो यह वही होगा। जैसा कि मैंने समझाया, क्रिएट कैंडीडेट्स व्यू अलग-अलग व्यवहार करता है। इसके साथ थोड़ा सा प्रयोग करें; आप देखेंगे कि इनपुट सही रहता है (जब तक, शायद, यह एक लंबवत स्क्रॉलव्यू में नहीं है। मैंने कोशिश नहीं की है) –

+0

नहीं, यदि आप इनपुट व्यू का उपयोग करते हैं, तो एंड्रॉइड विंडो के अनुसार विंडो को पैन या आकार बदल देगा गतिविधि की सेटिंग्स। आपके द्वारा उद्धृत दस्तावेज के मुताबिक, अभ्यर्थियों के दृष्टिकोण से उपयोगकर्ता को "वर्तमान फोकस देखने के लिए जरूरी होने पर" पंसद किया जाएगा। –

0

आम तौर पर इनपुट मोडस सर्विसेज पृष्ठभूमि रंग का उपयोग करता है जो वर्तमान बाध्यकारी अनुप्रयोग के पृष्ठभूमि रंग के साथ समान होता है। यदि आप इसे पारदर्शी बनाना चाहते हैं, तो मुझे लगता है कि आपको इसे पॉपअप-विंडो संरचना के रूप में बनाना चाहिए, न कि इनपुट इनपुट विंडो जो मुझे लगता है।

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