एंड्रॉइड सेट करना: animateLayoutChanges प्रोग्रामेटिक रूप से


84

मैं रैखिक प्रोग्राम को प्रोग्रामेटिक रूप से बना रहा हूं और यह चाहूंगा कि जब दृश्यता दृश्यमान हो जाए, तो वे उसमें और बाहर फीके पड़ जाएं।

मैं सेट कर सकता हूं

android:animateLayoutChanges="true" 

xml-file में, लेकिन जब से मैं प्रोग्राम को विचारशील बना रहा हूं, मुझे इसे प्रोग्रामेटिक रूप से सेट करने की आवश्यकता है। मैं उसे कैसे कर सकता हूँ?

जवाबों:


151

इस कोड का उपयोग करें:

container.setLayoutTransition(new LayoutTransition());

या

LayoutTransition lt = new LayoutTransition();
lt.disableTransitionType(LayoutTransition.DISAPPEARING);
container.setLayoutTransition(lt);

1
आपकी टिप्पणी के लिए धन्यवाद, लेकिन दुर्भाग्य से विकलांगताटाइप टाइप केवल एपीआई स्तर 16 से उपलब्ध है, हालांकि मैं एपीआई स्तर 15 का उपयोग कर रहा हूं
deimos1988

2
यह वैकल्पिक है, आप बस इस्तेमाल कर सकते हैंcontainer.setLayoutTransition(new LayoutTransition())
user3709904

2
ठीक है, लेकिन अगर मैं फीका-आउट प्रभाव को निष्क्रिय करना चाहता था, तो क्या एपीआई स्तर 15 के लिए एक रास्ता है?
deimos1988

3
अक्षम गायब संक्रमण क्यों?
लुई सीएडी

2
इसे 16 से कम एपी स्तर में करने के लिए, इस संक्रमण प्रकारों के लिए एनिमेटरों को अक्षम करें। यह प्रलेखन में उल्लेख किया गया है: developer.android.com/intl/ru/reference/android/animation/… LayoutTransition lt = cardGroup.getLayoutTransition (); // दिखने में अक्षम / गायब लेआउट परिवर्तन lt.setAnimator (LayoutTransition.APPEARING, null); lt.setAnimator (LayoutTransition.DISAPPEARING, null); lt.setAnimator (LayoutTransition.CHANGE_DISAPPEARING, null);
आकाश

18

फीका-आउट प्रभाव को अक्षम करने के लिए इसे आज़माएँ:

LinearLayout layout = (LinearLayout) findViewById(R.id.test_layout);
layout.setLayoutTransition(null);

2
यह मुझे NullPointerException दे रहा है।
सुरजन बरई

7
@SrujanBarai तब R.id. test_layoutआपके लेआउट में आईडी के साथ कोई दृश्य नहीं है ।
पॉल Woitaschek
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.