`
helloandroid
  • 浏览: 275572 次
  • 性别: Icon_minigender_1
  • 来自: 成都
博客专栏
107f8db3-b009-3b79-938a-dafddb49ea79
Android腾讯微博客户...
浏览量:95641
社区版块
存档分类
最新评论

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

阅读更多
从右向左滑动,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
分享到:
评论
1 楼 u010675012 2014-09-11  
楼主,你的这个源码根本运行不了啊,或报错的
09-11 09:49:12.857: E/AndroidRuntime(763): at android.widget.TabWidget.onFocusChange(TabWidget.java:524)
09-11 09:49:12.857: E/AndroidRuntime(763): at android.view.View.onFocusChanged(View.java:4589)
09-11 09:49:12.857: E/AndroidRuntime(763): at android.view.View.handleFocusGainInternal(View.java:4377)
09-11 09:49:12.857: E/AndroidRuntime(763): at android.view.ViewGroup.handleFocusGainInternal(ViewGroup.java:562)
09-11 09:49:12.857: E/AndroidRuntime(763): at android.view.View.requestFocusNoSearch(View.java:6665)
09-11 09:49:12.857: E/AndroidRuntime(763): at android.view.View.requestFocus(View.java:6644)
09-11 09:49:12.857: E/AndroidRuntime(763): at android.view.ViewGroup.requestFocus(ViewGroup.java:2326)
09-11 09:49:12.857: E/AndroidRuntime(763): at android.view.View.requestFocus(View.java:6611)
09-11 09:49:12.857: E/AndroidRuntime(763): at android.view.View.requestFocus(View.java:6590)
09-11 09:49:12.857: E/AndroidRuntime(763): at android.widget.TabWidget.focusCurrentTab(TabWidget.java:461)
09-11 09:49:12.857: E/AndroidRuntime(763): at android.widget.TabHost.setCurrentTab(TabHost.java:410)
09-11 09:49:12.857: E/AndroidRuntime(763): at com.caigang.test.CustomTabHost.setCurrentTab(CustomTabHost.java:56)
09-11 09:49:12.857: E/AndroidRuntime(763): at android.widget.TabHost.addTab(TabHost.java:240)
09-11 09:49:12.857: E/AndroidRuntime(763): at com.caigang.test.CustomTabHost.addTab(CustomTabHost.java:35)
09-11 09:49:12.857: E/AndroidRuntime(763): at com.caigang.test.MainActivity.setIndicator(MainActivity.java:63)
09-11 09:49:12.857: E/AndroidRuntime(763): at com.caigang.test.MainActivity.init(MainActivity.java:52)
09-11 09:49:12.857: E/AndroidRuntime(763): at com.caigang.test.MainActivity.onCreate(MainActivity.java:37)
09-11 09:49:12.857: E/AndroidRuntime(763): at android.app.Activity.performCreate(Activity.java:5104)
09-11 09:49:12.857: E/AndroidRuntime(763): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
09-11 09:49:12.857: E/AndroidRuntime(763): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)

相关推荐

    Android代码-fleep滑动切换tab切换带动画.zip

    本项目"Android代码-fleep滑动切换tab切换带动画.zip"显然是一个专注于实现这种效果的示例代码。下面我们将深入探讨这一主题,讲解如何在Android应用中实现滑动切换Tab并添加动画效果。 首先,我们需要理解Android...

    Android fleep滑动切换tab(切换带动画).zip

    本示例代码"Android fleep滑动切换tab(切换带动画)"着重展示了如何在Android项目中实现带有动画效果的滑动切换Tab功能。下面将详细解析这一知识点。 首先,我们需要理解`Tab`的概念。在Android中,`Tab`通常用于...

    小程序源码 辅助类库 fleep滑动切换tab(切换带动画).rar

    本资源提供的"小程序源码 辅助类库 fleep滑动切换tab(切换带动画)"是一个专为实现平滑、动画效果丰富的tab切换功能而设计的组件。下面将详细解析这个组件的核心知识点: 1. **滑动切换**: 滑动切换是移动应用中...

    Android fleep滑动切换tab(切换带动画).zip项目安卓应用源码下载

    Android fleep滑动切换tab(切换带动画).zip项目安卓应用源码下载Android fleep滑动切换tab(切换带动画).zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术...

    Android源码——fleep滑动切换tab(切换带动画)_new_06.zip

    "Android源码——fleep滑动切换tab(切换带动画)_new_06.zip"这个资源包恰好提供了这样的实现示例。本文将深入解析这个案例中的关键知识点,包括滑动切换机制、动画效果的实现以及可能涉及到的设计模式。 首先,...

    Android fleep滑动切换tab(切换带动画).rar

    Android fleep滑动切换tab(切换带动画,辅助类库、实际项目框架参考、比赛练习案例,学习实例,开箱即用。适用于实际项目开发参考、教学案例、毕业设计、出书项目实例、学生面试前能力提升、开发辅助。

    Android源码——fleep滑动切换tab(切换带动画)_new_06.7z

    "fleep滑动切换tab(切换带动画)"这个项目专注于实现这一功能,并且强调了动画效果,使得界面更加生动和用户体验更佳。下面我们将详细探讨相关的Android知识点。 1. **ViewPager**: ViewPager是Android SDK中的一...

    Android fleep滑动切换tab(切换带动画).zip源码资源下载

    "Android fleep滑动切换tab(切换带动画)"是一个示例项目,展示了如何在Android应用中实现这种功能,并且在切换过程中添加平滑的动画效果,以提升用户体验。这个项目主要涉及以下知识点: 1. **ViewPager**: ...

    Android fleep滑动切换tab(切换带动画)-IT计算机-毕业设计.zip

    本项目名为"Android fleep滑动切换tab(切换带动画)",是几年前的一个Android应用源码示例,特别适合计算机专业学生进行毕业设计学习。 这个项目的核心知识点主要包括以下几个方面: 1. **SlidingTabLayout**:这...

    安卓Android源码——fleep滑动切换tab(切换带动画).zip

    本文将深入探讨基于Android的Fleep库实现的滑动切换Tab功能,包括其原理、关键代码以及如何在项目中应用。 Fleep库是专门为Android平台设计的一个组件,它允许开发者轻松实现具有动画效果的Tab切换。这种滑动切换...

    小程序 fleep滑动切换tab(切换带动画).rar

    免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...

    Androidfleep滑动切换tab切换带动画.zip

    在`Android fleep滑动切换tab(切换带动画).rar`这个项目中,开发者可能已经封装了一个自定义的`TabLayout`和`ViewPager`组合,包含了特定的滑动和切换动画。这可能涉及到自定义ViewGroup,以及对触摸事件的处理,...

    android开发资料大全

    fleep滑动切换tab(切换带动画) 通过SurfaceView实现像Gallery手势滑动图片效果 Android自定义Gallery,实现CoverFlow效果 高仿网易新闻顶部滑动条效果 Android源码之动态壁纸引擎 动态桌面实现 android控件的...

Global site tag (gtag.js) - Google Analytics