मैं स्क्रॉलिंग परिवर्तनों पर AppBarLayout.ScrollingViewBehavior में offsetChildAsNeeded
विधि का गणित प्रवाह देखता हूं।कैसे AppBarLayout.ScrollingViewBehavior का गणित काम करता है?
चूंकि यह निजी विधि है और निजी mOffsetDelta
है, प्रोग्रामेटिक रूप से उन पर निगरानी कैसे कर सकता है?
(यह स्पष्ट कैसे विधि offset
भी उपयोग करता है नहीं है।)
private void offsetChildAsNeeded(CoordinatorLayout parent, View child, View dependency) {
final CoordinatorLayout.Behavior behavior =
((CoordinatorLayout.LayoutParams) dependency.getLayoutParams()).getBehavior();
if (behavior instanceof Behavior) {
// Offset the child, pinning it to the bottom the header-dependency, maintaining
// any vertical gap, and overlap
final Behavior ablBehavior = (Behavior) behavior;
final int offset = ablBehavior.getTopBottomOffsetForScrollingSibling();
ViewCompat.offsetTopAndBottom(child, (dependency.getBottom() - child.getTop())
+ ablBehavior.mOffsetDelta
+ getVerticalLayoutGap()
- getOverlapPixelsForOffset(dependency));
}
}
नोट: स्वागत कर रहे हैं और यह भी जो कि getTopBottomOffsetForScrollingSibling()
के गणित के तर्क पर विवरण की व्याख्या, (dependency.getBottom() - child.getTop())
के उत्तर में स्वीकार किया जा सकता है, और mOffsetDelta
यदि आप इसे प्राप्त करने की योजना बना रहे हैं, तो आप अपने अंतिम लक्ष्य की व्याख्या करते हुए बेहतर होगा। – natario
अंतिम लक्ष्य सीख रहा है कि स्क्रॉल परिवर्तन के दौरान व्यवहार कैसे काम करता है – GPack
'AppBarLayout की प्रतिलिपि बनाएँ।अपनी प्रोजेक्ट में स्क्रॉलिंग व्यूबीवियर 'क्लास, बदलाव करें, अपने' ऐपबारलाउट 'के ऐप को इंगित करें: लेआउट_बीवियरर', लाभ। –