@Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); if (!hasResetHeader) { if (measuredHeaderHeight > 0 && state != State.REFRESHING) { setHeaderPadding(-measuredHeaderHeight); } hasResetHeader = true; } }
/** 监听ListView滑动 */ @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); // 获得ImageView的父控件 View header = (View) mImageView.getParent(); if (header.getTop() < 0 && mImageView.getHeight() > mImageViewHeight) { // 减小ImageView的高度 -- 不能超过图片最原始的高度 mImageView.getLayoutParams().height = Math.max(mImageView.getHeight() + header.getTop(), mImageViewHeight); // ImageView所在的容器的高度也要变化:getTop--->0 header.layout(header.getLeft(), 0, header.getRight(), header.getHeight()); mImageView.requestLayout(); } }