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

view_pager_main.xml

<?xml version="1.0" encoding="utf-8"?>

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"> </android.support.v4.view.ViewPager>

activity

package com.example.actionBarTest.actionBarTabViewPager;

import android.app.ActionBar;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.ViewGroup;
import com.example.actionBarTest.R; import java.util.ArrayList;
import java.util.List; /**
* Created by Heyiyong on 2014-5-2 上午10:17.
*/
public class ViewPagerTabActivity extends FragmentActivity implements ActionBar.TabListener {
private ViewPager viewPager;
private List<Fragment> fragments;
private ActionBar actionBar; public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_pager_main); HomeFragment homeFragment = new HomeFragment();
MusicFragment musicFragment = new MusicFragment();
VideoFragment videoFragment = new VideoFragment();
fragments = new ArrayList<Fragment>();
fragments.add(homeFragment);
fragments.add(musicFragment);
fragments.add(videoFragment); //设置ViewPager部分
viewPager = (ViewPager) findViewById(R.id.viewPager);
viewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager())); //设置actionBar部分
actionBar = getActionBar();
if (actionBar != null) {
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.addTab(actionBar.newTab().setText("主页").setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("音乐").setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("视频").setTabListener(this));
} //viewPager与actionB整合部分
//当viewPager翻页的时候,actionBar的tab也要随之改变
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i2) {
} /**
* 当页面选择了之后调用该方法
*/
@Override
public void onPageSelected(int i) {
actionBar.setSelectedNavigationItem(i);
} @Override
public void onPageScrollStateChanged(int i) {
}
});
} //————————————————————————————————————————-
//—————————————actionBar的回调 ———————————————————-
//————————————————————————————————————————-
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
viewPager.setCurrentItem(tab.getPosition());
} @Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) { } @Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) { } /**
* viewPager的适配器
*/
class MyPagerAdapter extends FragmentPagerAdapter { public MyPagerAdapter(FragmentManager fm) {
super(fm);
} /**
* 只会运行一次
*/
@Override
public Fragment getItem(int i) {
System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.getItem");
return fragments.get(i);
} @Override
public int getCount() {
return fragments.size();
} @Override
public Object instantiateItem(ViewGroup container, int position) {
System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.instantiateItem");
return super.instantiateItem(container, position);
} @Override
public void destroyItem(ViewGroup container, int position, Object object) {
System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.destroyItem");
super.destroyItem(container, position, object);
} @Override
public void restoreState(Parcelable state, ClassLoader loader) {
System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.restoreState");
super.restoreState(state, loader);
} @Override
public Parcelable saveState() {
System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.saveState");
return super.saveState();
} @Override
public void finishUpdate(ViewGroup container) {
System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.finishUpdate");
super.finishUpdate(container);
}
}
}

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. VMWare 不能识别SD卡

    打开service

  2. ADO.NET笔记——带参数的查询防止SQL注入攻击

    相关知识: 把单引号替换成两个单引号,虽然能起到一定的防止SQL注入攻击的作用,但是更为有效的办法是把要拼接的内容做成“参数” SQLCommand支持带参数的查询,也就是说,可以在查询语句中指定参数 ...

  3. 【转】Web标准中的常见问题

    本文转自http://www.tracefact.net/Misc/Common-Problems-Of-Web-Standard.aspx 引言 大概在2004年的时候,Web标准的概念藉由一本名为 ...

  4. 查看SQL Server 备份信息

    RESTORE HEADERONLY FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008\MSSQL\Back ...

  5. 折腾了好久的macos+apache+php+phpmyadmin 终于成功了!

    由于最近需要布置mantis用来进行bug追踪,在此记录其过程. 由于PHP apache环境在Mac OS上是自带的,所以不需要另处下安装包,只需要简单配置一下即可. 首先打开终端输入命令: sud ...

  6. [原]项目进阶 之 持续构建环境搭建(三)Maven环境搭建

    上次的博文项目进阶 之 持续构建环境搭建(二)Nexus私服器中,我们搭建了一个Nexus的maven私服,这次我们来重点讲解一下Maven的安装和配置.这里说明一下这次的环境搭建,比较基础,但却非常 ...

  7. 问题 K: 【USACO2012Feb】植草 {Bronze题2}

    按着矩形周长的思路,到当前边的时候,前一层的覆盖数乘以高度加入 ans 就行,然而真正的算法可能并不是这个..只能想到这个了 ; type node=record l,r,mid,sum,delta: ...

  8. sharepoint 2010

    Technical diagrams (SharePoint Server 2010) http://technet.microsoft.com/en-us/library/cc263199(offi ...

  9. 如何在64位的Windows中安裝PLSQLDEVELOPER 8

    先到 Oracle 官網下載Oracle Database 11g Release 2 Client (11.2.0.1.0) for Microsoft Windows (x64) ,接者依照以下步 ...

  10. Ubuntu 下为 Idea 创建启动图标.

    默认情况下,ubuntu将自动安装的软件快捷方式保存在/usr/share/applications目录下,如果我们要创建桌面快捷方式,需要在该目录下创建一个名为“Idea.desktop”的文件.通 ...