我要达到的效果是向下滚动listView时,第一条记录固定不动,上向滚动的时候第一条记录可以隐藏,这个不知道怎么做?那位高手指点一些,先谢谢了!!
还是自己解决的,需要重新布局当前的layout,红色标记部分是关键,拿来与大家分享一下!
@Override
protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX,
boolean clampedY) {
//Log.e(TAG, "onOverScrolled(),scrollX=" +scrollX + ",scrollY="+scrollY+
//",clampedX="+clampedX+",clampedY:"+clampedY+",mAddHeader="+mAddHeader);
//判断向下滚动,重新布局
if(scrollY < 0 ){
mAddHeader = true;
if(mSearchView != null){
mSearchView.layout(0, scrollY, mSearchViewWidth, mSearchViewHeight + scrollY);
this.setHeaderDividersEnabled(false);
}
//向上滚动时,重新布局
}else if(scrollY >= 0 && mAddHeader ){
mAddHeader = false;
requestLayout();
}
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
}
@Override
public void addHeaderView(View v) {
super.addHeaderView(v);
mSearchView = (ViewGroup) v;
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
if (mSearchView != null) {
mSearchViewWidth = mSearchView.getMeasuredWidth();
mSearchViewHeight = mSearchView.getMeasuredHeight();
}
}
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
if (mSearchView != null) {
mSearchView.layout(0, 0, mSearchViewWidth, mSearchViewHeight);
}
}
楼主好人 给个完整的代码吧!
做一控件.
滚动的时候,用另外一个容器放第一个,占山个第一个的位置,其他的照滚.
还是不知道怎么做,能不能详细讲一下,使用什么控件或者容器,滚动部分要怎么控制?谢谢!
方便给个demo?