在厦门海关贸易贸易通APP一期接近收尾阶段,发现一个bug:滑动tab下拉刷新页面,当新闻listView滑下来时,再往下滑,无法上滑,而是直接刷新的bug,如下图。
成都创新互联公司专业为企业提供甘孜州网站建设、甘孜州做网站、甘孜州网站设计、甘孜州网站制作等企业网站建设、网页设计与制作、甘孜州企业网站模板建站服务,十余年甘孜州做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。解决:
在adapter、activity、fragment三个文件多处打log后将问题锁定在
ViewPagerFragment 中的checkCanDoRefresh()的最后return返回值始终为true。针对性打log发现getFirstVIsiblposition和getChildAt(0).getTop(),这个两个值始终为0,估计是某个事件拦截了ListView的这两个属性。
2. 于是在initView中监听mListView的滚动事件
mListView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
//Log.e("ViewPagerFragment_scrollStateChanged", "scrollState:"+scrollState);
Log.e("ViewPagerFragment_scrollStateChanged", "mListView.getChildAt(0).getTop():"+mListView.getChildAt(0).getTop());
getTop=mListView.getChildAt(0).getTop();
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
mfirstVisibleItem=firstVisibleItem;
然后用成员×××变量mfirstVisibleItem、getTop,代替getFirstVIsiblposition和getChildAt(0).getTop(),问题解决。
该滑动下拉刷新tab原型参考我博客中100+Android 开源项目分类汇总一(精品 )第三个开源项目android-Ultra-Pull-to-Refresh。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。