论坛首页 移动开发技术论坛

fleep滑动切换tab(切换带动画)

浏览 12470 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-09-27  


从右向左滑动,tab页切换后的效果



主要代码1:继承TabHost覆写setCurrentTab(int index)方法
@Override
	public void setCurrentTab(int index) {
		//index为要切换到的tab页索引,currentTabIndex为现在要当前tab页的索引
		int currentTabIndex = getCurrentTab();
		
		//设置当前tab页退出时的动画
		if (null != getCurrentView()){//第一次进入MainActivity时,getCurrentView()取得的值为空
			if (currentTabIndex == (tabCount - 1) && index == 0) {//处理边界滑动
				getCurrentView().startAnimation(slideLeftOut);
			} else if (currentTabIndex == 0 && index == (tabCount - 1)) {//处理边界滑动
				getCurrentView().startAnimation(slideRightOut);
			} else if (index > currentTabIndex) {//非边界情况下从右往左fleep
				getCurrentView().startAnimation(slideLeftOut);
			} else if (index < currentTabIndex) {//非边界情况下从左往右fleep
				getCurrentView().startAnimation(slideRightOut);
			}
		}
		
		super.setCurrentTab(index);
		
		//设置即将显示的tab页的动画
		if (currentTabIndex == (tabCount - 1) && index == 0){//处理边界滑动
			getCurrentView().startAnimation(slideLeftIn);
		} else if (currentTabIndex == 0 && index == (tabCount - 1)) {//处理边界滑动
			getCurrentView().startAnimation(slideRightIn);
		} else if (index > currentTabIndex) {//非边界情况下从右往左fleep
			getCurrentView().startAnimation(slideLeftIn);
		} else if (index < currentTabIndex) {//非边界情况下从左往右fleep
			getCurrentView().startAnimation(slideRightIn);
		}
	}


2:实现OnGestureListener接口,覆写onFling()方法
@Override
	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) {
		if (e1.getX() - e2.getX() <= (-FLEEP_DISTANCE)) {//从左向右滑动
			currentTabID = tabHost.getCurrentTab() - 1;
			if (currentTabID < 0) {
				currentTabID = tabHost.getTabCount() - 1;
			}
		} else if (e1.getX() - e2.getX() >= FLEEP_DISTANCE) {//从右向左滑动
			currentTabID = tabHost.getCurrentTab() + 1;
			if (currentTabID >= tabHost.getTabCount()) {
				currentTabID = 0;
			}
		}
		tabHost.setCurrentTab(currentTabID);
		return false;
	}
  • 大小: 115.5 KB
  • 大小: 99.8 KB
   发表时间:2011-09-27  
直接上support v4的ViewPager吧
0 请登录后投票
   发表时间:2011-09-27   最后修改:2011-09-27
zhuixinjian 写道
直接上support v4的ViewPager吧

恩,刚才看了下,ViewPager也可以实现类似效果。http://my.oschina.net/kzhou/blog/29157
0 请登录后投票
   发表时间:2011-10-02  
你是热火的球迷?
0 请登录后投票
   发表时间:2011-10-02  
我发现图标不错,楼主能不能介绍几个查找素材的网站啊
没办法,自己的审美能力太差了,ps的东西都太难看
0 请登录后投票
   发表时间:2011-12-19  
en ,楼主的图标挺好看
0 请登录后投票
   发表时间:2011-12-20  
同求LZ的图标素材网站
0 请登录后投票
   发表时间:2011-12-20   最后修改:2011-12-20
楼主做个动态图更直观些。是像ViewPager跟随手指移动,还是手势后切换屏幕呢?
0 请登录后投票
   发表时间:2011-12-21  
效果不错,顶楼主
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics