在写android程序的时候,有时候会 用到listView和scrollview共存,比如一篇帖子,上头是主帖的内容,下面是一个回复的listview,想要吧二者放在一起,就要有一个scrollView来支持。
但是scrollView里面是不允许有系统里面的listview的,所以为了不冲突,我就重写了一个listview,重载了listview的构造和OnMeasure方法,这样就能避免和scrollView的冲突。
自定义的listview
public class ReplyListView extends ListView{
public ReplyListView(Context context) {
super(context);
}
public ReplyListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ReplyListView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
然后把xml布局文件中的listview换成自己定义的这个
不过这样完事后还有一个毛病,就是每次都是先显示listview的东西,如果你listview上面还有东西话,需要自己滑上去
在java代码里,加上一句话
mScrollView = (ScrollView)findViewById(R.id.bbs_view_topic_scroll_view);
mScrollView.smoothScrollTo(0, 0);
这样就能在最顶部了
这里是参考别人写的一个,比较不错http://www.apkbus.com/android-161576-1-1.html