2011-04-26 12 views
7

मैं ListView का उपयोग करके चैट-जैसे दृश्य बनाना चाहता हूं जहां नए संदेश स्क्रीन के नीचे दिखाई देते हैं (इसलिए मैं एंड्रॉइड का उपयोग करता हूं: stackFromBottom = "true") और मैं ListView में एक शीर्षलेख जोड़ना चाहता हूं जो स्क्रीन के शीर्ष पर दिखाई देगा। जब कुछ संदेश होते हैं तो हेडर और संदेशों के बीच खाली जगह होगी, जब बहुत सारे संदेश होंगे, तो सूची दृश्य स्क्रॉल करने योग्य होगा और शीर्ष संदेश दिखाई देंगे, जब शीर्ष संदेश दिखाई देंगे (हेडर साथ स्क्रॉल करेगा बाकी संदेश)। समस्या यह है कि मैं सूची दृश्य को यह नहीं कह सकता कि इसे हेडर या आइटम स्क्रीन पर शेष स्थान भरने दें। एंड्रॉइड: layout_height = "fill_parent" मदद नहीं करता है। मैं रिलेवेटिवआउट का उपयोग करके हेडर स्थिर बना सकता हूं, लेकिन मैं नहीं चाहता हूं। कोई विचार?एंड्रॉइड लिस्ट व्यू: हेडर/पाद लेख जो स्क्रीन पर शेष स्थान भरता है

उत्तर

0

आप 3 पंक्तियों के साथ तालिका लेआउट में सूची दृश्य क्यों नहीं डालते हैं। सूची पंक्ति को मध्य पंक्ति में रखें, फिर शीर्ष और निचली पंक्ति का उपयोग शीर्षलेख और पाद लेख के रूप में करें।

+0

क्या मार्कोस ने कहा कि काम करेंगे जैसे कि यह जोड़ने, लेकिन मैं तालिका लेआउट पसंद करते हैं। आप अपने हेडर और पाद लेख को एक निश्चित ऊंचाई (डुबकी में) पर सेट कर सकते हैं और सूची के उपयोग के आधार पर सूचीदृश्य को ऊंचाई में घटने/बढ़ने की अनुमति दे सकते हैं। – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

+0

मार्कोस के उत्तर के समान ही। रिक्त स्थान भरने पर, मुझे सूची दृश्य के साथ स्क्रॉल करने के लिए वास्तव में इस शीर्षलेख की आवश्यकता है। मैंने इसे आईफोन पर देखा है लेकिन अभी तक एंड्रॉइड पर नहीं है, इसलिए मुझे नहीं पता कि यह संभव है या नहीं। – Elena

0

शीर्ष पर शीर्षलेख के साथ लंबवत पर एक रैखिक लयआउट का उपयोग करें, लेआउट_वेट = "1" और फिर अपने पाद लेख के साथ बीच में अपनी सूची देखें।

यदि आप हेडर को स्क्रॉल करने योग्य बनाना चाहते हैं तो एक समाधान। अपने एडाप्टर में स्थिति 1 को उस शीर्षलेख को भरना है जिसे आप स्क्रॉल करना चाहते हैं।

+0

लेकिन जब मैं ListView स्क्रॉल करता हूं तो हेडर दिखाई देगा। जैसा कि मैंने कहा था कि मामला थोड़ा और समस्याग्रस्त है - मैं शीर्ष पर शीर्षलेख चाहता हूं, जब पर्याप्त संदेश नहीं हैं (और संदेश नीचे हैं), लेकिन जब स्थान संदेशों से भरा होता है और ListView स्क्रॉल करने योग्य हो जाता है, तो मैं चाहता हूं ListView के साथ स्क्रॉल करने के लिए शीर्षलेख। – Elena

+0

हमम .. यह थोड़ा और जटिल है। मेरा नया जवाब देखें। –

+0

मुझे जवाब देने के लिए धन्यवाद! मुझे अभी भी पता नहीं है कि स्क्रीन के शीर्ष पर शीर्षलेख को कैसे रखा जाए (स्क्रीन के शीर्ष पर इसे संरेखित करें) और सूची दृश्य में भरने के लिए पर्याप्त सामग्री नहीं होने पर शेष आइटम को नीचे रखें। कोड में कुछ हार्ड-कोर गणना करना संभव समाधान है, लेकिन मैं इसे करने का एक बेहतर तरीका ढूंढ रहा हूं। – Elena

0

बस ऐसे header_list.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:background="@drawable/listitem_background" 
    android:layout_marginLeft="4dip" android:layout_marginRight="4dip" 
    android:gravity="center_vertical|center_horizontal" 
> 

     <TextView android:id="@+id/nearByLabel" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Load More Results" 
      android:textColor="#000" 
      android:textStyle="bold" 
      android:textSize="20sp" 
      /> 

</LinearLayout> 

के रूप में और अपनी गतिविधि में एक अलग लेआउट बनाने

View headerView = inflater.inflate(R.layout.header_list, null); 
yourlistView.addHeaderView(headerView); 
+1

आपके उत्तर के लिए धन्यवाद लेकिन यह सवाल नहीं था। जिस तरह से मैंने अभी हल किया है वह हेडर को स्क्रीन के शीर्ष पर रखना है और जब पहली सूची आइटम अब एनीमेशन के साथ छिपाने के लिए दिखाई नहीं दे रहा है। – Elena

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