关键算法在函数 void updateExpandedViewPos(int expandedPosition) ,不断更新trackingview的Y坐标。
刚开始的时候设置 mExpandedParams.y 为trackingView 的最大负值,在更新的时候不断的改变当前的Y坐标,从而更新VIEW 的位置。
mExpandedParams.y = pos + mTrackingView.getHeight()
- (mTrackingParams.height-closePos) - contentsBottom;
pos为trackingView的最底端,最大不超过statusbar的位置,当到达statusbar的最下面位置时,statusbar expand 完全展开.
mTrackingView.getHeight() 为一个定值,即trackingView的高度, 和mTrackingParams.height 为同一个值。
contentsBottom如下得来,为当前已经展开的内容的高度
if(mShowQuickToggleExt)
mQuickToggleExt.getLocationInWindow(mPositionTmp);
else
mExpandedContents.getLocationInWindow(mPositionTmp);
final int contentsBottom = mPositionTmp[1] + mExpandedContents.getHeight();
在 doRevealAnimation 函数中不断地调用上面的函数。
最后
以上就是坚定大叔最近收集整理的关于android statusbar expand 条解析的全部内容,更多相关android内容请搜索靠谱客的其他文章。
发表评论 取消回复