5

मेरे पास LinearLayoutlayoutAnimation संपत्ति है जिसका उपयोग ExpandableListView को अनुकूलित करने के लिए किया जाता है। इस तरह:लेआउटएनीमेशन केवल एक बार काम करता है

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layoutAnimation="@drawable/list_layout_controller" 
    android:orientation="vertical" > 

जब मैं सूची पर क्लिक करता हूं, तो एनीमेशन प्रदर्शित किया जाएगा। लेकिन यह केवल एक बार काम करता है और यह अगले क्लिक में सूची को एनिमेट नहीं करेगा। क्यूं कर?

कृपया मुझे बताएं, अगर आपको और विवरण चाहिए।

धन्यवाद प्रत्येक आइटम क्लिक पर एनीमेशन को पुनः आरंभ करने

+1

क्लिक यू मतलब का विस्तार और एक आइटम पतन से उपयोग करें ..? – Ronnie

+0

हां, किसी आइटम को – Kermia

+0

विस्तृत करें और संक्षिप्त करें क्या आप list_layout_contorller पेस्ट कर सकते हैं? क्या आप ExpandableListView का विस्तार कर रहे हैं या एक नया बनाया है? कुछ कोड देखने की आवश्यकता है .. – Ronnie

उत्तर

7

लेआउट एनिमेशन चलाए जा रहे हैं। इसलिए आपको कार्य करने के लिए लेआउट एनीमेशन के लिए प्रत्येक विस्तार/पतन पर विचारों को मैन्युअल रूप से जोड़ना/निकालना होगा।

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

आप onClick() में विचारों की दृश्यता को बदलकर भी कोशिश कर सकते हैं। लेकिन इसके बारे में निश्चित नहीं है। कोशिश करें और मुझे बताएं।

उम्मीद है कि मदद करता है।

+0

काम नहीं करता है। इस पंक्ति ने मेरी मदद की: 'लेआउट एनीमेशन चलाए जाते हैं जब लेआउट में दृश्य जोड़े जाते हैं' – Kermia

+1

@ केर्मिया: क्या आप मुझे बता सकते हैं कि आपने अपनी समस्या का हल कैसे किया? –

+0

दृश्यता बदलने के संकेत के लिए धन्यवाद: मैं 'लेआउटएनिमेशन कंट्रोलर' का उपयोग कर रहा हूं जिसे केवल एक बार निकाल दिया जाता है। अब मैंने लेआउट दृश्यता को 'GONE' पर सेट किया है, अगले कथन में मैंने इसे' विज़िबल 'पर सेट किया है और निम्नलिखित कथन में मैं' myLayout.setLayoutAnimation (myLayoutAnimController) लिखता हूं; 'पूरी तरह से काम करता है :-) – 0X0nosugar

1

प्रयास करें: जब विचारों लेआउट में जुड़ जाते हैं

lv.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, 
     int position, long id) { 
     view.getAnimation().start(); 
     //your custom logic 
} 
}); 
+0

नहीं, – Kermia

9

सबसे पहले यू घोषित करने के लिए

Animation listanimation = AnimationUtils.loadAnimation(mainActivity.this, R.anim.list_layout_controller); 

और हर clearAnimation पहले चाहते हैं। LinearLayout

की clickevent
linearLayout.clearAnimation(); 
linearLayout.startAnimation(listanimation); 
2

कॉल

listView.scheduleLayoutAnimation में();

से पहले सूची

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