參考网址:

点击打开链接

源代码实现:

package com.example.actionbardemo2;

import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
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.Menu;
import android.view.MenuItem; public class MainActivity extends FragmentActivity implements
ActionBar.TabListener { private dFragment1 fragment1 = new dFragment1();
private dFragment2 fragment2 = new dFragment2();
private dFragment3 fragment3 = new dFragment3(); private static final int TAB_INDEX_COUNT = 2; private static final int TAB_INDEX_ONE = 0;
private static final int TAB_INDEX_TWO = 1; private ViewPager viewPager;
private myFrgamentPagerAdapter viewPagerAdapter; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 1 设置 ViewPager
setViewPager(); // 2 获取ActionBar
getActionBarMethod(); } // 1 设置 ViewPager
private void setViewPager() { viewPagerAdapter = new myFrgamentPagerAdapter(getSupportFragmentManager()); viewPager = (ViewPager)this.findViewById(R.id.viewpager);
viewPager.setAdapter(viewPagerAdapter);
viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener()
{
@Override
public void onPageSelected(int position) {
// TODO Auto-generated method stub
super.onPageSelected(position); final ActionBar actionBar = getActionBar();
actionBar.setSelectedNavigationItem(position); } @Override
public void onPageScrollStateChanged(int state) {
// TODO Auto-generated method stub
super.onPageScrollStateChanged(state);
} }); } // 2 获取ActionBar
private void getActionBarMethod() {
//获取ActionBar
ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); // 设置actionBar的颜色
Drawable draw = new ColorDrawable(Color.GREEN);
actionBar.setBackgroundDrawable(draw); // 设置ActionBar tab
ActionBar.Tab tab = actionBar.newTab();
tab.setText("核心产品");
tab.setIcon(draw);
tab.setTabListener(this);
actionBar.addTab(tab); tab = actionBar.newTab();
tab.setText("平台产品");
tab.setIcon(draw);
tab.setTabListener(this);
actionBar.addTab(tab); // 去掉左側小箭头右边的图标:
// 代表 左側要有一个箭头
actionBar.setDisplayHomeAsUpEnabled(true);
// 代表 禁用Logo
actionBar.setDisplayUseLogoEnabled(false);
// 使用 透明色来取代原有的图标,相当于 不显示
actionBar.setIcon(new ColorDrawable(Color.TRANSPARENT));
} /**
* ActionBar action 点击事件的处理:
* */
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
} return super.onOptionsItemSelected(item);
} /**
* ActionTab 的 点击事件:
*
* */
@Override
public void onTabReselected(Tab arg0, android.app.FragmentTransaction arg1) {
// TODO Auto-generated method stub } @Override
public void onTabSelected(Tab tab, android.app.FragmentTransaction arg1) {
// TODO Auto-generated method stub
// 依据ActionBar Tab 的 位置 index 来设置 ViewPager 的 当前的显示页。 viewPager.setCurrentItem(tab.getPosition());
} @Override
public void onTabUnselected(Tab arg0, android.app.FragmentTransaction arg1) {
// TODO Auto-generated method stub } /**
* ActionBar 的样式,设置。
*
* */
@Override
public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} //TODO 2 Viewpager 的自己定义类:
class myFrgamentPagerAdapter extends FragmentPagerAdapter { public myFrgamentPagerAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
} @Override
public Fragment getItem(int position) {
// TODO 设置 返回的数据
switch (position)
{
case TAB_INDEX_ONE: return fragment1; case TAB_INDEX_TWO: return fragment2;
} throw new IllegalStateException("No fragment at position " + position);
} @Override
public int getCount() {
// TODO Auto-generated method stub
return TAB_INDEX_COUNT;
} } }

Android --------------------ActionBar 与 ViewPager 和 ActionTab 切换 的源代码实现的更多相关文章

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

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

  2. Android ActionBar与ViewPager合用

    内容可以左右滑动,因为使用了ViewPager(我这里用了V4包) view_pager_main.xml <?xml version="1.0" encoding=&quo ...

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

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

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

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

  5. Android中使用ViewPager实现屏幕页面切换和页面切换效果

    之前关于如何实现屏幕页面切换,写过一篇博文<Android中使用ViewFlipper实现屏幕切换>,相比ViewFlipper,ViewPager更适用复杂的视图切换,而且Viewpag ...

  6. Android ViewPager实现选项卡切换

    ViewPager实现选项卡切换,效果图如下: 步骤一:这里使用兼容低版本的v4包进行布局,这里eclipse没有输入提示,所以要手动输入,文件名称“activity_main.xml” <Re ...

  7. Android随笔--使用ViewPager实现简单地图片的左右滑动切换

    Android中图片的左右切换随处可见,今天我也试着查阅资料试着做了一下,挺简单的一个小Demo,却也发现了一些问题,话不多说,上代码~: 使用了3个xml文件作为ViewPager的滑动page,布 ...

  8. Android Material Design:ViewPager与android.support.design.widget.TabLayout双向交互联动切换

    通常,android.support.design.widget.TabLayout与Android的ViewPager联合使用,实现与ViewPager的切换与联动.(1)比如,当用户手指触摸选择T ...

  9. Android:使用ViewPager实现左右滑动切换图片(图上有点点)

    在以下实例的基础上加上点点 Android:使用ViewPager实现左右滑动切换图片 (简单版) 效果预览: 因为要把点点放图片上,所以修改布局为相对布局: <?xml version=&qu ...

随机推荐

  1. PD的CDM模型中的三种实体关系

    PD的CDM模型中的三种实体关系 本文摘自:http://www.cnblogs.com/syf/articles/2480580.html PD 正向工程使用说明:http://download.c ...

  2. UVA 10026 Shoemaker's Problem 鞋匠的难题 贪心+排序

    题意:鞋匠一口气接到了不少生意,但是做鞋需要时间,鞋匠只能一双一双地做,根据协议每笔生意如果拖延了要罚钱. 给出每笔生意需要的天数和每天的罚钱数,求出最小罚钱的排列顺序. 只要按罚款/天数去从大到小排 ...

  3. JDBC四(web基础学习笔记十)

    一.增加 .修改.删除.查询 将功能整合在一个类中 package pb.base; import java.sql.Connection; import java.sql.DriverManager ...

  4. Android OpenGL ES(四)----调整屏幕的宽高比

    1.宽高比问题 我们如今相当熟悉这样一个事实,在OpenGL里,我们要渲染的一切物体都要映射到X轴和Y轴上[-1,1]的范围内,对于Z轴也一样.这个范围内的坐标被称为归一化设备坐标,其独立于屏幕实际尺 ...

  5. cookie 设置有效期 检测cookie

    设置cookie 函数直接上代码: function setCookie(name, value, days) { //设置cookie var d = new Date(); d.setTime(d ...

  6. 关于linux的添加永久静态路由的static-routes方法

    一:使用 route 命令添加 使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法: //添加到主机的路由 # route add –host 192.168.1.11 dev ...

  7. 〖Linux〗使用Qt5.2.0开发Android的NDK应用程序

    2013年12月11日,Qt发布了其新的Qt版本:Qt5.2.0: 利用这个新的版本,我们可以很轻松地制作出Android手机的NDK应用程序. 开发环境:Ubuntu13.10 x86_64 下载链 ...

  8. fread与read的差别(文件io补充)

    这里有一个我们常常提出的问题就是fread,read的差别.(当然这两个分别代表了操作文件系统的两套不同的函数,包含open,read, write, seek 等). 一.他们的差别就是一个(rea ...

  9. 配置的好的Apache和PHP语言的环境下,如何在Apache目录下htdocs/html目录下 同时部署两个项目呢

    建虚拟目录打开Apache->conf->httpd.conf在最下面粘贴NameVirtualHost 127.0.0.1 <VirtualHost 127.0.0.1> S ...

  10. Linear Algebra Courses

    Lecture 1:Demonstrate the columns of a matrix (imagine the vectors) in N-dimension space.How to mult ...