您的位置:首页 > 移动开发 > Android开发

android listview 使用代码滚动到指定位置(标记)

2015-10-21 23:59 417 查看
采用 smoothScroll...系列函数可实现,例如使用在 微信朋友圈中进行评论时listview 滚动到相应位置,实现原理:

1.获取评论条目view在屏幕中得绝对位置

view.getLocationOnScreen(position);

2.获取评论输入view在键盘弹出后在屏幕的绝对位置。

3.计算出评论条目view需要滚动到得位置

4.计算需要滚动的距离

5.使用smoothScrollBy进行滚动

值的注意的是需要监听当键盘弹出后输入框的位置,即输入框父容器

onSizeChanged

函数的调用

private class STRelativeLayout extends RelativeLayout{

public STRelativeLayout(Context context) {
super(context);
}

@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
if (mListener != null){
mListener.onSizeChanged(this,w,h);
}
}

private OnSizeChangeListener mListener;
void setOnSizeChangeListener(OnSizeChangeListener listener){
this.mListener = listener;
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息