के लिए एनीमेशन विस्तार योग्य लिस्ट व्यू के लिए एक विस्तार या पतन एनीमेशन लागू करना संभव है?विस्तार योग्य लिस्ट व्यू
उत्तर
यह एक साधारण सूची दृश्य का उपयोग करके किया जा सकता है जिसमें प्रारंभिक रूप से छुपा दृश्य और एक कस्टम क्लास है जो एनीमेशन बढ़ाती है। मूल विचार View.GONE
से शुरू करना है, फिर View.VISIBLE
पर दृश्यता सेट करते समय धीरे-धीरे मार्जिन को ऋणात्मक मान से आवश्यक आकार में फिर से आकार दें।
देखें:
- https://github.com/tjerkw/Android-SlideExpandableListView
- Android Animation: Hide/Show Menu
- How do I animate View.setVisibility(GONE)
..और अंत में
अंतिम उदाहरण में आपको आवश्यक सभी कोड शामिल हैं। यह मेरे लिए थोड़ा सा हैक, विशेष रूप से तथ्य यह है कि आपको शुरुआत में view.bottomMargin = -50
या उससे अधिक सेट करना होगा, अन्यथा एनीमेशन पहली बार ठीक से काम नहीं करता है, लेकिन अब तक मुझे कोई व्यवहार्य विकल्प नहीं मिला है (स्क्रॉलव्यू का उपयोग स्वयं के साथ ListView के बजाय कंटेनर आइटम)।
और अंत में, इस एप्लिकेशन को सूत्रों के लिंक के साथ अन्य उपयोगी उदाहरण के बहुत सारे के बीच में, ऊपर के उदाहरण में शामिल हैं:
अपडेट: Google बौद्धिक के लिए कथित तौर पर प्ले स्टोर से ऐप्स को निकाल दिया संपत्ति उल्लंघन (हालांकि इसमें केवल स्रोतों को खोलने के लिए डेमो और लिंक शामिल हैं), लेखक ने अब http://goo.gl/ihcgs से सीधे डाउनलोड के लिए एपीके उपलब्ध कराया है अधिक जानकारी के लिए https://plus.google.com/108176685096570584154/posts देखें। एनबी: मैं लेखक से संबद्ध नहीं हूँ।
यूई पैटर्न ऐप लिंक के लिए धन्यवाद। – howettl
लेकिन यह सूची दृश्य का उपयोग करने का पूरा बिंदु खो देगा, क्योंकि समूह के अंदर मौजूद सभी आइटम (जो आप विस्तार करते हैं) को इसके अंदर होना चाहिए। यदि आपके पास बहुत सारी चीज़ें हैं, तो आपको वहां भी बहुत सारे विचारों की आवश्यकता होगी ... –
@android डेवलपर: आप स्क्रॉलव्यू का उपयोग करके बेहतर हो सकते हैं, इसे दृश्यों के साथ पॉप्युलेट कर सकते हैं और उन्हें एनिमेशन लागू कर सकते हैं की आवश्यकता है। एक ListView एक जटिल घटक है जो बड़ी सूचियों के लिए अनुकूलित किया गया है; यदि आपके पास केवल एक दर्जन आइटम हैं तो एक स्क्रॉल व्यू एनिमेट करना आसान हो सकता है - अपना स्वयं का ब्लॉक घटक बनाएं और अपनी इच्छानुसार विचारों को एनिमेट करें। ListView की तुलना में मुख्य नुकसान यह है कि एंड्रॉइड आपके आइटम को बना/नष्ट नहीं करेगा क्योंकि वे दृश्य क्षेत्र में स्क्रॉल किए गए हैं और कंटेनर का पुन: उपयोग नहीं किया जाएगा, लेकिन यदि आपके पास कुछ आइटम हैं तो यह एक बड़ा सौदा नहीं है । – ccpizza
मैंने एक साधारण सूची दृश्य के लिए एक समान काम किया है। ऐसा करने के लिए मैंने getView विधि को ओवरराइड किया है और प्रत्येक सूची आइटम पर अनुवाद (या नीचे) एनीमेशन का अनुवाद किया है। अनुवाद की डिग्री सूची की स्थिति द्वारा तय की गई थी आइटम।
https://github.com/idunnololz/AnimatedExpandableListView/ –
मुझे इस समस्या के लिए एक संभावित (आंशिक) कामकाज मिला है।
पहले आप ExpnadableListView की पुस्तक राज्य स्टोर करने के लिए की जरूरत है: ListView खुद के लिए
@Override
public void onScrollStateChanged(final AbsListView view, final int scrollState) {
this.mScrollState = scrollState;
}
public int getScrollState() {
return this.mScrollState;
}
, आप, ताकि केवल अपने बच्चों एनिमेटेड हो जाएगी स्टोर करने के लिए जो समूह क्लिक किया गया था की जरूरत है:
mListView.setOnGroupClickListener(...
@Override
public boolean onGroupClick(...){
mGroupPosition=groupPosition;
अब, विधि getChildView() में, आप स्क्रॉल के राज्य की जाँच, और अगर यह बेकार है, आप एनीमेशन शुरू करते हैं, उदाहरण के लिए:
public View getChildView(...) {
// <=prepare rootView and return it later
if (groupPosition==mGroupPosition&&getScrollState() == OnScrollListener.SCROLL_STATE_IDLE)
rootView.setAnimation(...)
यह समूह के विस्तार के दौरान प्रत्येक बार बच्चे के विचारों के लिए एक एनीमेशन सेट करेगा।
इस की सबसे बड़ी खामी हैं:
-
केवल विस्तार बच्चे विचारों के लिए
- । समूह को ध्वस्त करते समय आपको उन्हें एनिमेट करने के लिए अतिरिक्त तर्क के बारे में सोचना होगा।
- सभी एनिमेशन एक बार में शुरू होते हैं। यदि आप चाहते हैं कि यह अन्यथा काम करेगा तो आपको एक-दूसरे के बाद एक से अधिक एनिमेशन जोड़ना होगा।
यह एक दिलचस्प दृष्टिकोण है। लेकिन जो मैंने सीखा है, उससे बच्चे * आइटम * बच्चे * विचार * नहीं हैं, लेकिन भाई बहन हैं। तो क्या आप अलग-अलग एनिमेशन वाले सभी बच्चों को एनिमेट करते हैं, या आप इसे कैसे करते हैं कामकाजी उदाहरण कोड? – Nilzor
@ नीलोजर मैंने इसे बहुत समय पहले किया है, और मुझे कम समय के कारण एनिमेशन की आवश्यकता को हटा दिया गया था। क्षमा करें। –
कोई समस्या नहीं, मुझे वापस आने के लिए धन्यवाद। वहां किसी और के लिए, समस्या काफी अभी भी अनसुलझा है, हालांकि मुझे लगता है कि यह इस समस्या को हल करने वाला Google होना चाहिए यदि वे सामग्री डिज़ाइन दिशानिर्देशों के बारे में गंभीर हैं – Nilzor
- 1. एंड्रॉइड एक्सपेंडेबल लिस्ट व्यू - कुछ समूह को गैर विस्तार योग्य
- 2. एक्सपेंडेबल लिस्ट व्यू एक्सपेंडेबल लिस्ट व्यू
- 3. लिस्ट व्यू
- 4. लिस्ट व्यू
- 5. विस्तारणीय लिस्ट व्यू
- 6. टेबल व्यू सेल विस्तार योग्य आईओएस
- 7. विस्तारणीय लिस्ट व्यू - क्या सशर्त विस्तार संभव है?
- 8. विस्तारणीय लिस्ट व्यू हमेशा
- 9. विस्तारणीय लिस्ट व्यू कोई बच्चे
- 10. एंड्रॉइड लिस्ट व्यू एनीमेशन
- 11. एक विस्तारणीय लिस्ट व्यू
- 12. setOnItemClickListener कस्टम लिस्ट व्यू
- 13. एंड्रॉइड लिस्ट व्यू -
- 14. एंड्रॉइड कस्टम लिस्ट व्यू
- 15. एंड्रॉइड लिस्ट व्यू थीम
- 16. एंड्रॉइड लिस्ट व्यू हेडर
- 17. एक्सपेंडेबल लिस्ट व्यू
- 18. एंड्रॉइड लिस्ट व्यू
- 19. एंड्रॉइड लिस्ट व्यू रीफ्रेश
- 20. एंड्रॉइड लिस्ट व्यू
- 21. एंड्रॉइड एक्सपेंडेबल लिस्ट व्यू और एसक्यूएलएट डाटाबेस
- 22. डब्ल्यूपीएफ लिस्ट व्यू स्क्रॉलबार झूठी
- 23. एंड्रॉइड लिस्ट व्यू चयन हटाएं
- 24. एंड्रॉइड लिस्ट व्यू स्क्रॉलबार स्टाइल
- 25. एंड्रॉइड लिस्ट व्यू लाइव अपडेट
- 26. एंड्रॉइड विस्तार योग्य ग्रिड व्यू Google छवियों की तरह
- 27. विस्तार योग्य सूची संकेतक
- 28. विस्तार योग्य ट्री मेनू सूची
- 29. ग्रिड व्यू बनाम डेटालिस्ट बनाम रिपेटर बनाम लिस्ट व्यू
- 30. एंड्रॉइड, कस्टम लिस्ट एडाप्टर टेक्स्ट व्यू-टेक्स्ट
मुझे नहीं लगता कि पंक्तियों के एनिमेट के बीच अंतर बनाना संभव है, हालांकि मैंने बच्चे के रूप में दिखाए गए दृश्य पर स्लाइड बाएं/दाएं एनीमेशन डाला है। यह केवल वास्तव में काम करता है क्योंकि केवल एक ही बच्चा है। – skorulis