PullToRefreshListView添加头部需求

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012733501/article/details/50475403

PullToRefresh是一款非常强大的开源上下拉刷新,然而有的时候需要不同的需求时,就有点问题,比如要加一个头部Header,这个时候发现没有addHeaderView()方法,点开PullToRefreshListView,发现,他并非继承于ListView。

那么这个时候可以通过getRefreshableView()。获得listview实例,然后


通过获得的listview,addHeadView().。即可

对于上拉刷新依然是使用PullToRefreshListView。

具体代码如下

// 头部
		AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(
				AbsListView.LayoutParams.MATCH_PARENT,
				AbsListView.LayoutParams.WRAP_CONTENT);
		headerView = inflater.inflate(R.layout.headview, pull, false);
		AutoScrollViewPager viewPager = (AutoScrollViewPager) headerView
				.findViewById(R.id.view_pager);
		CirclePageIndicator indicator = (CirclePageIndicator) headerView
				.findViewById(R.id.indicator);

		List<Integer> imageIdList = new ArrayList<Integer>();
		imageIdList.add(R.drawable.widget_autoscroollview_demo_banner1);
		imageIdList.add(R.drawable.widget_autoscroollview_demo_banner2);
		imageIdList.add(R.drawable.widget_autoscroollview_demo_banner3);
		imageIdList.add(R.drawable.widget_autoscroollview_demo_banner4);
		viewPager.setAdapter(new ImagePagerAdapter(getActivity(), imageIdList));
		indicator.setViewPager(viewPager);
		viewPager.setInterval(2000);
		// viewPager.setSlideBorderMode(AutoScrollViewPager.SLIDE_BORDER_MODE_CYCLE);
		viewPager
				.setSlideBorderMode(AutoScrollViewPager.SLIDE_BORDER_MODE_NONE);
		// viewPager.setSlideBorderMode(AutoScrollViewPager.SLIDE_BORDER_MODE_TO_PARENT);
		viewPager.setCycle(true);
		headerView.setLayoutParams(layoutParams);
		ListView lv = pull.getRefreshableView();
		lv.addHeaderView(headerView);

		pull.setOnRefreshListener(new OnRefreshListener2() {

			@Override
			public void onPullDownToRefresh(PullToRefreshBase refreshView) {
				// String label = DateUtils.formatDateTime(getActivity(),
				// System.currentTimeMillis(), DateUtils.FORMAT_SHOW_TIME
				// | DateUtils.FORMAT_SHOW_DATE
				// | DateUtils.FORMAT_ABBREV_ALL);
			}

			@Override
			public void onPullUpToRefresh(PullToRefreshBase refreshView) {
				// String label = DateUtils.formatDateTime(getActivity(),
				// System.currentTimeMillis(), DateUtils.FORMAT_SHOW_TIME
				// | DateUtils.FORMAT_SHOW_DATE
				// | DateUtils.FORMAT_ABBREV_ALL);
			}
		});
		return view;


猜你喜欢

转载自blog.csdn.net/u012733501/article/details/50475403