Android ActionBar与ViewPager合用
内容可以左右滑动,因为使用了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合用的更多相关文章
- Android --------------------ActionBar 与 ViewPager 和 ActionTab 切换 的源代码实现
參考网址: 点击打开链接 源代码实现: package com.example.actionbardemo2; import android.app.ActionBar; import android ...
- Android开发之ViewPager+ActionBar+Fragment实现响应式可滑动Tab
今天我们要实现的这个效果呢,在Android的应用中十分地常见,我们可以看到下面两张图,无论是系统内置的联系人应用,还是AnyView的阅读器应用,我们总能找到这样的影子,当我们滑动屏幕时,Tab可 ...
- Android Studio精彩案例(一)《ActionBar和 ViewPager版仿网易新闻客户端》
转载本专栏文章,请注明出处,尊重原创 .文章博客地址:道龙的博客 为了能更好的分享高质量的文章,所以开设了此专栏.文章代码都以Android Studio亲测运行,读者朋友可在后面直接下载源码.该专栏 ...
- Android编程心得-使用ActionBar+Fragment+ViewPager实现动态切换Menu效果
1.首先上效果图 2.本例实现的效果主要适用于当前页面有多个页签时.进行Fragment切换时,能够利用不同的Menu样式与当前Fragment中的内容进行配合,能够大大添加复用性,看到效果图后,以下 ...
- Android中Fragment+ViewPager的配合使用
官方推荐 ViewPager与Fragment一起使用,可以更加方便的管理每个Page的生命周期,这里有标准的适配器实现用于ViewPager和Fragment,涵盖最常见的用例.FragmentPa ...
- Android ActionBar(转)
本文内容 关于 ActionBar 必要条件 项目结构 环境 演示一:Action Bar 显示隐藏 演示二:Action Item 显示菜单选项 演示三:Action Home 启用“返回/向上”程 ...
- Android ActionBar应用实战,高仿微信主界面的设计
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/26365683 经过前面两篇文章的学习,我想大家对ActionBar都已经有一个相对 ...
- Android 原生 Android ActionBar Tab (滑动)导航
本文内容 环境 项目结构 演示一:ActionBar Tab 导航 演示二:ActionBar Tab 带滑动导航 本文演示 Tab 导航.第一个演示,是基本的 Tab 导航,第二个是带滑动的 Tab ...
- Android 原生 Android ActionBar
本文内容 关于 ActionBar 必要条件 项目结构 环境 演示一:Action Bar 显示隐藏 演示二:Action Item 显示菜单选项 演示三:Action Home 启用"返回 ...
随机推荐
- 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 ...
- jquery 1.6发布后,增加prop()方法部分取代attr()方法
以前的jq中,全部使用attr来访问对象的属性,比如取一个图片的alt属性,就可以这样做$('#img').attr('alt'); 但是在某些时候,比如访问checkbox的disabled属性 ...
- Eclipse 运行多个Tomcat实例
- win10任务视图
之所以用到win10任务视图源自于一个需求,就是我想在上班操作电脑的同时想将某个游戏在后台挂机,这样工作归工作,挂机归挂机,互不干扰.win10任务视图就能轻松的解决这个问题. 任务视图 新建任务视图 ...
- 一款jquery编写图文下拉二级导航菜单特效
一款jquery编写图文下拉二级导航菜单特效,效果非常简洁大气,很不错的一款jquery导航菜单特效. 这款jquery特效适用于很多的个人和门户网站. 适用浏览器:IE8.360.FireFox.C ...
- 跟着PHP100第一季学写一个CMS(11-20)
PS.刚发现IE并不兼容,有点悲剧 cms1.1密码处理 1.小知识:sha1($_answer) //加密为40位,不知道能不能破解 2.小知识:mysql_real_escape_string( ...
- 如何去掉html中的超链接
$a= preg_replace("/<a[^>]+>/", "", $a); $a= preg_replace("/<\/a ...
- 为Eclipse设置背景色
1:打开Eclipse,在菜单栏找到Help—>Install new software.. 2:在打开的Work with中输入: Update Site - http://eclipse-c ...
- openerp - asterisk connector(转载)
原文:http://www.akretion.com/open-source-contributions/openerp-asterisk-voip-connector OpenERP - Aster ...
- jquery 在ie10中post数据,最终数据丢失的BUG修复
最近在做项目的时候,发现ie10或者360之类套壳的浏览器(ie10) 在jquery调用post数据的时候,真实的请求并没有上传数据,原因不表,请见 http://stackoverflow.com ...