首页 > 代码库 > 用Fragment实现Listview顶部停靠

用Fragment实现Listview顶部停靠

   跟着xiechengfa一起做了几天android学了不少东西。过来总结下技术点。参考地址:猛击这里。我是很装逼,玩了半年android后面没有深挖技术,造成很多东西都反应比较慢,要深入学习了!!!

代码就少上了。还是多上效果图。效果图如下:

《用Fragment实现Listview顶部停靠,参考

StickyListHeaders》
参考地址:http://blog.csdn.net/xiechengfa/article/details/39005775

1.演示如上。
2.自动切换两个fragment(里面切换数据和

listview)
3.滑动到顶部,不再滑动了!!
4.自动消失顶部的导航菜单。再显示出Tab上的按钮

里面两个技术点。这个布局是用FrameLayout实现的。里面有层次关系。

最上面一层才是toplist 最里面的是fragment(也就是listview那一层===>headerViewLayout===>toptitle(外层)

就是最大的 覆盖面最大的在最里层。这个是个技术点。要深刻理会!

里面很多技术点可以挖。不过先满足效果。以后慢慢挖技术点。


	@Override
	public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
		float headerMoveDistance = ViewHelper.getTranslationY(headerView);
		if (headerMoveDistance <= -headerContent.getHeight()) {
			iv_tabMore.setVisibility(View.VISIBLE);
			iv_tabBack.setVisibility(View.VISIBLE);

			ll_top.setVisibility(View.INVISIBLE);

		} else {
			iv_tabMore.setVisibility(View.INVISIBLE);
			iv_tabBack.setVisibility(View.INVISIBLE);

			ll_top.setVisibility(View.VISIBLE);
		}
		int scrollY = getScrollY(view);
		System.out.println("****************onScroll scrollY:" + scrollY + ",mMinHeaderTranslation:"
				+ header_logo.getHeight() + ",end:" + Math.max(-scrollY, header_logo.getHeight()));

		ViewHelper.setTranslationY(headerView, Math.max(-scrollY, -headerContent.getHeight()));
	}

这句代码,就是判断你丫的滑动了多少。是不是到了顶部呢??如果到了顶部怎么办???就用ViewHelper怎么办?所以非常不错!
demo下载地址:点击打开链接猛击这里



用Fragment实现Listview顶部停靠