2013-04-21 9 views
33

मैं एक सूचीदृश्य और नीचे एक संदेश भेजने के साथ एक गतिविधि बनाने की कोशिश कर रहा हूं। समस्या यह है कि जब कुंजीपटल दिखाया जाता है, तो नीचे की सामग्री को दबाए रखने के बजाय, इसे छिपा रहा है। मैंने एडजपैन का उपयोग करने की कोशिश की, लेकिन यह छेद दृश्य को धक्का देता है (इसलिए सूचीदृश्य के शीर्ष तत्वों को देखने का कोई तरीका नहीं है और डी एक्शनबार गायब हो जाता है)।कुंजीपटल के बिना कीबोर्ड दिखाई देने पर पुश लिस्टव्यू

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

कोई भी इस मुद्दे से निपटता है?

धन्यवाद

संपादित करें:

मैं एक दृश्य उदाहरण डाल करने की कोशिश करेंगे:

---item 1--- 
---item 2--- 
---item 3--- 
---item 4--- 
---EditText--- 

editText हिस्सा नहीं है:

तो कहते हैं कि इस ListView की सुविधा देता है ListView के, लेकिन नीचे एक गठबंधन एक LinearLayout। जब कुंजीपटल दिखाया गया है, ListView (मद 3 और 4 कीबोर्ड पर छिपे होते हैं) इस तरह हो जाता है:

---item 1--- 
---item 2--- 
---EditText--- 
---Keyboard--- 

और मैं क्या प्राप्त करना चाहते हैं है:

---item 3--- 
---item 4--- 
---EditText--- 
---Keyboard--- 

मैं एंड्रॉयड की कोशिश की है : windowSoftInputMode = "adjustPan"। और परिणाम यह है कि प्रभावी रूप से आइटम 3 और 4 को धक्का दिया जाता है और अब कीबोर्ड द्वारा छुपाया नहीं जाता है। समस्या यह है कि यह सूचीदृश्य को धक्का देता है, लेकिन यह स्क्रीन से बाहर धक्का देता है, इसलिए एक्शनबार गायब हो जाता है, और यहां तक ​​कि स्क्रॉल करने का प्रयास करने पर भी, मैं दिखाए गए कीबोर्ड के साथ आइटम 1 और 2 कभी नहीं देख सकता।

आशा मैं अपने आप को बताया गया है, वास्तव में आसान नहीं ..

धन्यवाद

+1

तुम क्या यह मेरे लिए अपने बहुत स्पष्ट नहीं है, वर्तमान में की तरह दिखता है कि समस्या क्या है की एक स्क्रीन शॉट पोस्ट कर सकते हैं। – wangyif2

+0

मैंने व्याख्या करने की कोशिश करने के लिए एक उदाहरण जोड़ा है। धन्यवाद – Mehdi

उत्तर

50

ठीक है, मैं अनिवार्य रूप से किया जाता है आप के लिए एक समाधान है, आप क्या करना चाहते क्या पाया है हर बार नीचे करने के लिए ListView पुस्तक है। यदि यह एक Activity है

ListView l = getListView(); 
l.setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL); 
l.setStackFromBottom(true); 

, यह onCreate में क्या: आप ऐसा कर सकते हैं। यदि यह Fragment है, तो इसे onViewCreated पर करें।

+2

हाय, धन्यवाद। यह वास्तव में सूची को स्क्रॉल करता है नीचे देखें। समस्या यह है कि जब मैं सूचीदृश्य को स्क्रॉल करता हूं, और उसके बाद कीबोर्ड दिखाता हूं, तो यह नीचे सूचीदृश्य को फिर से स्क्रॉल करता है। यह उपयोगकर्ता को वह आइटम खो देगा जो वह देख रहा था। उदाहरण के तौर पर यदि आपके पास यह है तो आपके व्हाट्सएप/लाइन ऐप पर एक नज़र डालें।जब आप इसे खोलते हैं, तो सूचीदृश्य नीचे होता है, कीबोर्ड दिखाता है, फिर भी आप अंतिम आइटम देखते हैं, कीबोर्ड हटाते हैं और स्क्रॉल करते हैं, फिर कीबोर्ड को फिर से दिखाएं, सूचीदृश्य नीचे स्क्रॉल नहीं किया गया है ... धन्यवाद फिर से – Mehdi

+0

आह, मैं देखता हूं कि आप क्या चाहते हैं, मैंने जवाब अपडेट किया है, और इसका परीक्षण किया है, जैसा कि आप कहते हैं वैसा ही करना चाहिए। कृपया स्वीकार करें कि यह आपके लिए भी ठीक करता है या नहीं। – wangyif2

+2

अरे यह। मैं सभी खोया समय एक्सडी पर विश्वास नहीं कर सकता। धन्यवाद – Mehdi

14

अपने लेआउट एक्सएमएल में:

android:stackFromBottom="true" 
android:transcriptMode="normal" 
+0

एंड्रॉइड: stackFromBottom = "true" की आवश्यकता नहीं है – NarendraJi

0

सिंगल लाइन समाधान

list_view.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); 
संबंधित मुद्दे

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