问题
前两天刚写了一篇关于SwipeRefreshLayout的文章,讲的是在它的内部不是ListView,而是还有一个父布局,如FrameLayout时,会出现进度圈不显示的问题。今天的问题也跟那个bug类似,如果SwipeRefreshLayout的内部是ListView,没有这个bug,如果内部为FrameLayout(其它诸如RelativeLayout等也一样),在FrameLayout的内部才是ListView,那么会造成SwipeRefreshLayout和ListView的滑动冲突,先看下症状,如下图:
问题代码如下
由于我的代码是写进自己的demo集中的,有一定的抽取和优化,自己又懒得再摘出来,所以有些代码会看着很奇怪,我都加了注释,如果哪里看得很奇怪,兄弟们可以留言给我。
public class SwipeRefreshLayoutBugActivity extends BaseActivity {
SwipeRefreshLayout mSwipeRefreshLayout;
ListView mListView;
BaseAdapter mBaseAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.srl_bug_1);
mListView = (ListView) findViewById(R.id.lv_bug_swipe_refresh_layout);
//这里的BaseAdapter不是android自身提供的类,而是我自己封装的一个适配器基类
mBaseAdapter = new BaseAdapter<String>(this) {
@Override
public ViewHolder getHolder() {
return new TextViewHolder(SwipeRefreshLayoutBugActivity.this);
}
};
mListView.setAdapter(mBaseAdapter);
loadData();
}
private void loadData(){
//OpenAPI是我封装的一个类,专门用来获取数据
OpenAPI.getVirtualData(