2013.03.19(7)———android scrollview和listview共存的问题
ScrollView嵌套GridView或者是ListView时,就会莫名其妙的出现问题,这里 我总结一下 我遇到的问题 总共有两个
1、listview显示不完整
参考:
http://www.2cto.com/kf/201204/127363.html
这个可以自定义一下listview,如下
public class MyListView extends ListView {
public MyListView(Context context) {
super(context);
}
public MyListView(Context context, android.util.AttributeSet attrs) {
super(context, attrs);
}
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
这样 listview 就可以完整显示了
2、listview滚动加载失效
一般我写listview滚动加载 ,都是利用onScrollChange这个函数,如下
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if(scrollState == OnScrollListener.SCROLL_STATE_IDLE){
if(view.getLastVisiblePosition()==(view.getCount()-1)){
this.loadData();
}
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
}
然后
mLst.setOnScrollListener(this);
但是 当ListView在Scrollview里面的时候 这个就不管用了 ,为了解决这个问题,我们可以监听scrollview滚动到底部的事件 然后 来加载listview数据
参考:http://gundumw100.iteye.com/blog/1164066
如下所示代码
mScl.setOnTouchListener(this);
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_UP:
mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_SCROLL_BOTTOM), 200);
break;
default:
break;
}
return false;
}
//handler
private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(_dialog!=null && _dialog.isShowing()){
_dialog.dismiss();
}
switch(msg.what){
case MSG_SCROLL_BOTTOM:
if (mLayRoot.getHeight() <= mScl.getScrollY() + mScl.getHeight()) {//判断是否触底
System.out.println("on bottom!");
if(mIndexStart==0){
if(mArrComment.size() >= (mIndexShow-1) * DBOpenHelper.PAGE_COUNT){
mPrg.setVisibility(View.VISIBLE);
new Thread(new LoadCommentThread()).start();
}
}
}
break;
}
}
};
分享到:
相关推荐
android中scrollview与listview共存,内含源码导入Eclipse直接即可使用
Android ScrollView嵌套ListView嵌套GridView的上下拉以及加载更多
解决Scrollview嵌套listview下拉刷新的一些问题
解决scrollview与listview共存问题,实现listview翻页功能
利用事件分发机制解决解决ScrollView嵌套ListView使用
本Demo展示如何在ScrollView中嵌套ListView,通过自定义ListView有效解决冲突问题
android ScrollView,ListView 截屏并保存到图库
scrollview 与 listview, viewpager 共存
android 解决ScrollView和listView嵌套冲突问题(保证在ScrollView中滑动listView只响应listView的滑动)
Android中scrollview嵌套listview,解决嵌套冲突问题
Android中自定义ListView,解决scrollview嵌套listview 滑动事件冲突,是非常常见的问题,我写了一个例子和大家交流学习
Android_ScrollView与ListView_GridView共存冲突解决方案,包括布局,资源多的卡死优化等!
scrollView包含listview,解决listview数据加载不出来的问题
scrollview嵌套listview常见的问题,以及如何修改。适用的场景都做了说明。具体可以查看我的博客。
用于解决scrollview组件嵌套listview组件时候 两者之间的冲突问题
ScrollView嵌套ListView,当ListView的顶部到达屏幕顶部时,listView才具有滑动能力,当listView滑动到两端时,会触发ScrollView滑动
主要解决ScrollView与ListView的滑动冲突
Android scrollview ListView GridView上拉下拉刷新,带缓冲效果