मेरे पास विस्तारणीय बाल दृश्यों के साथ एक पुनर्चक्रण दृश्य है, जब बच्चे व्यू ग्रुप पर क्लिक किया जाता है तो यह व्यूग्रुप ऊंचाई को 0 से मापा गया दृश्य समूह ऊंचाई तक एनिमेट करने वाले दृश्यों को बढ़ाता है, जैसे कि निम्नलिखित gif :एंड्रॉइड रीसाइक्लर अपनी ऊंचाई को एनिमेट करने के लिए चिकनी स्क्रॉल देखें
समस्या है: मैं recyclerView पर smoothScrollToPosition फोन कर रहा हूँ, यह देखने की स्थिति में चिकनी स्क्रॉल, लेकिन यह वर्तमान दृश्य ऊंचाई, है जो अभी भी विस्तार नहीं समझता है, ऊपर gif i 'में मैं recyclerview के नीचे देखने पर छू रहा हूं, जो स्थिति को स्क्रॉल नहीं करता है क्योंकि दृश्य पहले से दिखाई दे रहा है, लेकिन जब मैं फिर से स्पर्श करता हूं (चिकनी कॉलिंग scrolltoposition दोबारा) यह दृश्य को सही स्थिति में स्क्रॉल करें, क्योंकि दृश्य पहले से ही विस्तारित है।
क्या स्क्रीन के शीर्ष पर दृश्य स्क्रॉल करने के लिए कोई दृष्टिकोण है या सामग्री को दृश्यमान करने के लिए बस स्क्रॉल करें?
संदर्भ के लिए: इस विधि विचारों को बढ़ाने के लिए कहा जाता है:
collapsible_content.removeAllViews();
for(int i = 0; i < 5; i++) {
View link_view = getLayoutInflater().inflate(R.layout.list_item_timeline_step_link, collapsible_content, false);
TextView text = (TextView) link_view.findViewById(R.id.step_link_text);
text.setText("Test");
collapsible_content.addView(link_view);
}
और यह विस्तार करने के लिए मेरी विधि है:
public void toggle() {
collapsible_content.measure(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
Animation a;
if (mExpanded) {
a = new ExpandAnimation(collapsible_content.getLayoutParams().height, 0);
} else {
a = new ExpandAnimation(collapsible_content.getLayoutParams().height, getMeasuredHeight());
}
a.setDuration(mAnimationDuration);
collapsible_content.startAnimation(a);
mExpanded = !mExpanded;
}
और एनीमेशन:
private class ExpandAnimation extends Animation {
private final int mStartHeight;
private final int mDeltaHeight;
public ExpandAnimation(int startHeight, int endHeight) {
mStartHeight = startHeight;
mDeltaHeight = endHeight - startHeight;
}
@Override
protected void applyTransformation(float interpolatedTime,
Transformation t) {
final int newHeight = (int) (mStartHeight + mDeltaHeight *
interpolatedTime);
collapsible_content getLayoutParams().height = newHeight;
if (newHeight <= 0) {
collapsible_content setVisibility(View.GONE);
} else {
collapsible_content setVisibility(View.VISIBLE);
}
collapsible_content requestLayout();
}
@Override
public boolean willChangeBounds() {
return true;
}
}
मैं इस किया था के आधार पर
समाधान, लेकिन मैं थोड़ी देर के दृश्य एनिमेट है स्क्रॉल करने के लिए चाहते हैं, मेरे दृष्टिकोण अगर नीचे देखने के वाई RecyclerView से बाहर है की जाँच करने के एक एनीमेशन श्रोता जोड़ने के लिए था, तो पिक्सेल के मूल्य को देखते हुए चिकनी स्क्रॉल को कॉल करें, लेकिन मैंने यह प्रबंधित नहीं किया कि यह –
ठीक है, इसलिए आप बिथ एनीमेशन समानांतर – Mann
चाहते हैं, मुझे लगता है कि आपको उच्च दृश्य का नाटक करने के लिए दृश्य की ऊंचाई "नकली" करना है – Mann