内容可以左右滑动,因为使用了ViewPager(我这里用了V4包)

view_pager_main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2.  
  3. <android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:id="@+id/viewPager"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent">
  7.  
  8. </android.support.v4.view.ViewPager>

activity

  1. package com.example.actionBarTest.actionBarTabViewPager;
  2.  
  3. import android.app.ActionBar;
  4. import android.app.FragmentTransaction;
  5. import android.os.Bundle;
  6. import android.os.Parcelable;
  7. import android.support.v4.app.Fragment;
  8. import android.support.v4.app.FragmentActivity;
  9. import android.support.v4.app.FragmentManager;
  10. import android.support.v4.app.FragmentPagerAdapter;
  11. import android.support.v4.view.ViewPager;
  12. import android.view.ViewGroup;
  13. import com.example.actionBarTest.R;
  14.  
  15. import java.util.ArrayList;
  16. import java.util.List;
  17.  
  18. /**
  19. * Created by Heyiyong on 2014-5-2 上午10:17.
  20. */
  21. public class ViewPagerTabActivity extends FragmentActivity implements ActionBar.TabListener {
  22. private ViewPager viewPager;
  23. private List<Fragment> fragments;
  24. private ActionBar actionBar;
  25.  
  26. public void onCreate(Bundle savedInstanceState) {
  27. super.onCreate(savedInstanceState);
  28. setContentView(R.layout.view_pager_main);
  29.  
  30. HomeFragment homeFragment = new HomeFragment();
  31. MusicFragment musicFragment = new MusicFragment();
  32. VideoFragment videoFragment = new VideoFragment();
  33. fragments = new ArrayList<Fragment>();
  34. fragments.add(homeFragment);
  35. fragments.add(musicFragment);
  36. fragments.add(videoFragment);
  37.  
  38. //设置ViewPager部分
  39. viewPager = (ViewPager) findViewById(R.id.viewPager);
  40. viewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
  41.  
  42. //设置actionBar部分
  43. actionBar = getActionBar();
  44. if (actionBar != null) {
  45. actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
  46. actionBar.addTab(actionBar.newTab().setText("主页").setTabListener(this));
  47. actionBar.addTab(actionBar.newTab().setText("音乐").setTabListener(this));
  48. actionBar.addTab(actionBar.newTab().setText("视频").setTabListener(this));
  49. }
  50.  
  51. //viewPager与actionB整合部分
  52. //当viewPager翻页的时候,actionBar的tab也要随之改变
  53. viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
  54. @Override
  55. public void onPageScrolled(int i, float v, int i2) {
  56. }
  57.  
  58. /**
  59. * 当页面选择了之后调用该方法
  60. */
  61. @Override
  62. public void onPageSelected(int i) {
  63. actionBar.setSelectedNavigationItem(i);
  64. }
  65.  
  66. @Override
  67. public void onPageScrollStateChanged(int i) {
  68. }
  69. });
  70. }
  71.  
  72. //————————————————————————————————————————-
  73. //—————————————actionBar的回调 ———————————————————-
  74. //————————————————————————————————————————-
  75. @Override
  76. public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
  77. viewPager.setCurrentItem(tab.getPosition());
  78. }
  79.  
  80. @Override
  81. public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
  82.  
  83. }
  84.  
  85. @Override
  86. public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
  87.  
  88. }
  89.  
  90. /**
  91. * viewPager的适配器
  92. */
  93. class MyPagerAdapter extends FragmentPagerAdapter {
  94.  
  95. public MyPagerAdapter(FragmentManager fm) {
  96. super(fm);
  97. }
  98.  
  99. /**
  100. * 只会运行一次
  101. */
  102. @Override
  103. public Fragment getItem(int i) {
  104. System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.getItem");
  105. return fragments.get(i);
  106. }
  107.  
  108. @Override
  109. public int getCount() {
  110. return fragments.size();
  111. }
  112.  
  113. @Override
  114. public Object instantiateItem(ViewGroup container, int position) {
  115. System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.instantiateItem");
  116. return super.instantiateItem(container, position);
  117. }
  118.  
  119. @Override
  120. public void destroyItem(ViewGroup container, int position, Object object) {
  121. System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.destroyItem");
  122. super.destroyItem(container, position, object);
  123. }
  124.  
  125. @Override
  126. public void restoreState(Parcelable state, ClassLoader loader) {
  127. System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.restoreState");
  128. super.restoreState(state, loader);
  129. }
  130.  
  131. @Override
  132. public Parcelable saveState() {
  133. System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.saveState");
  134. return super.saveState();
  135. }
  136.  
  137. @Override
  138. public void finishUpdate(ViewGroup container) {
  139. System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.finishUpdate");
  140. super.finishUpdate(container);
  141. }
  142. }
  143. }

Android ActionBar与ViewPager合用的更多相关文章

  1. Android --------------------ActionBar 与 ViewPager 和 ActionTab 切换 的源代码实现

    參考网址: 点击打开链接 源代码实现: package com.example.actionbardemo2; import android.app.ActionBar; import android ...

  2. Android开发之ViewPager+ActionBar+Fragment实现响应式可滑动Tab

     今天我们要实现的这个效果呢,在Android的应用中十分地常见,我们可以看到下面两张图,无论是系统内置的联系人应用,还是AnyView的阅读器应用,我们总能找到这样的影子,当我们滑动屏幕时,Tab可 ...

  3. Android Studio精彩案例(一)《ActionBar和 ViewPager版仿网易新闻客户端》

    转载本专栏文章,请注明出处,尊重原创 .文章博客地址:道龙的博客 为了能更好的分享高质量的文章,所以开设了此专栏.文章代码都以Android Studio亲测运行,读者朋友可在后面直接下载源码.该专栏 ...

  4. Android编程心得-使用ActionBar+Fragment+ViewPager实现动态切换Menu效果

    1.首先上效果图 2.本例实现的效果主要适用于当前页面有多个页签时.进行Fragment切换时,能够利用不同的Menu样式与当前Fragment中的内容进行配合,能够大大添加复用性,看到效果图后,以下 ...

  5. Android中Fragment+ViewPager的配合使用

    官方推荐 ViewPager与Fragment一起使用,可以更加方便的管理每个Page的生命周期,这里有标准的适配器实现用于ViewPager和Fragment,涵盖最常见的用例.FragmentPa ...

  6. Android ActionBar(转)

    本文内容 关于 ActionBar 必要条件 项目结构 环境 演示一:Action Bar 显示隐藏 演示二:Action Item 显示菜单选项 演示三:Action Home 启用“返回/向上”程 ...

  7. Android ActionBar应用实战,高仿微信主界面的设计

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/26365683 经过前面两篇文章的学习,我想大家对ActionBar都已经有一个相对 ...

  8. Android 原生 Android ActionBar Tab (滑动)导航

    本文内容 环境 项目结构 演示一:ActionBar Tab 导航 演示二:ActionBar Tab 带滑动导航 本文演示 Tab 导航.第一个演示,是基本的 Tab 导航,第二个是带滑动的 Tab ...

  9. Android 原生 Android ActionBar

    本文内容 关于 ActionBar 必要条件 项目结构 环境 演示一:Action Bar 显示隐藏 演示二:Action Item 显示菜单选项 演示三:Action Home 启用"返回 ...

随机推荐

  1. centos6.5下的mysql5.6.30安装

    1.解压mysql tar -xf mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz  -C /usr/local mv mysql-5.6.30-linux-gli ...

  2. jquery 1.6发布后,增加prop()方法部分取代attr()方法

    以前的jq中,全部使用attr来访问对象的属性,比如取一个图片的alt属性,就可以这样做$('#img').attr('alt');   但是在某些时候,比如访问checkbox的disabled属性 ...

  3. Eclipse 运行多个Tomcat实例

             

  4. win10任务视图

    之所以用到win10任务视图源自于一个需求,就是我想在上班操作电脑的同时想将某个游戏在后台挂机,这样工作归工作,挂机归挂机,互不干扰.win10任务视图就能轻松的解决这个问题. 任务视图 新建任务视图 ...

  5. 一款jquery编写图文下拉二级导航菜单特效

    一款jquery编写图文下拉二级导航菜单特效,效果非常简洁大气,很不错的一款jquery导航菜单特效. 这款jquery特效适用于很多的个人和门户网站. 适用浏览器:IE8.360.FireFox.C ...

  6. 跟着PHP100第一季学写一个CMS(11-20)

    PS.刚发现IE并不兼容,有点悲剧  cms1.1密码处理 1.小知识:sha1($_answer) //加密为40位,不知道能不能破解 2.小知识:mysql_real_escape_string( ...

  7. 如何去掉html中的超链接

    $a= preg_replace("/<a[^>]+>/", "", $a); $a= preg_replace("/<\/a ...

  8. 为Eclipse设置背景色

    1:打开Eclipse,在菜单栏找到Help—>Install new software.. 2:在打开的Work with中输入: Update Site - http://eclipse-c ...

  9. openerp - asterisk connector(转载)

    原文:http://www.akretion.com/open-source-contributions/openerp-asterisk-voip-connector OpenERP - Aster ...

  10. jquery 在ie10中post数据,最终数据丢失的BUG修复

    最近在做项目的时候,发现ie10或者360之类套壳的浏览器(ie10) 在jquery调用post数据的时候,真实的请求并没有上传数据,原因不表,请见 http://stackoverflow.com ...