ActionBarCompat-Styled Demo下载地址:https://github.com/googlesamples/android-ActionBarCompat-Styled/#readme

此示例演示了如何使用自定义的ActionBarCompat,它包含了三个分页标签。需要注意的是,ActionBar的分页模式已经在API 21以后被遗弃。

界面在不同设备上可能会有所差别,以下是其中一些截图:

        

实现步骤:

  1. 创建Activity并继承AppCompatActivity,实现ActionBar.TabListener接口;
  2. 在res资源文件夹下创建menu文件夹,并在menu文件夹下创建主菜单布局xml;
  3. 重写onCreateOptionsMenu()方法,创建并初始化菜单;
  4. 创建并初始化Tab分页。

下面是Demo代码,可以通过加载Fragment达到分页显示不同内容的效果。

import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.widget.Toast; public class ActionBarStyledActivity extends AppCompatActivity implements ActionBar.TabListener { private final String TAG = "ActionBarStyledActivity"; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_action_bar_styled);
// 设置菜单使用Tab分页
ActionBar ab = getSupportActionBar();
/*
设置当前导航模式。导航模式有三种:
NAVIGATION_MODE_STANDARD:标准导航模式。
NAVIGATION_MODE_LIST:标签导航模式。
NAVIGATION_MODE_TABS:下拉列表导航模式。
*/
ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); // 创建Tab分页
ab.addTab(ab.newTab().setText("Tab 1").setTabListener(this));
ab.addTab(ab.newTab().setText("Tab 2").setTabListener(this));
ab.addTab(ab.newTab().setText("Tab 3").setTabListener(this));
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// 绑定菜单布局文件,布局文件已定义两个菜单子项refresh和settings
getMenuInflater().inflate(R.menu.styled_menu, menu);
return super.onCreateOptionsMenu(menu);
} @Override
public void onTabSelected(ActionBar.Tab tab, android.support.v4.app.FragmentTransaction ft) {
// Tab分页被选中时调用.
Log.i(TAG, tab.getText() + " onTabSelected");
} @Override
public void onTabUnselected(ActionBar.Tab tab, android.support.v4.app.FragmentTransaction ft) {
// 当前Tab分页不再被选中,被下一个选中的分页替代时调用。例如当前选中Tab1,当你点击Tab2时,Tab1会触发此方法,而Tab2会触发onTabSelected.
Log.i(TAG, tab.getText() + "onTabUnselected");
} @Override
public void onTabReselected(ActionBar.Tab tab, android.support.v4.app.FragmentTransaction ft) {
// 已选中此Tab分页,再次点击选中同一个分页时调用。例如已经选中了Tab1,当你再次点击Tab1时,Tab1会触发此方法。
Log.i(TAG, tab.getText() + "onTabReselected");
}
}

Android 官方Demo ActionBarCompat-Styled的更多相关文章

  1. android 官方demo地址

    android官方demo地址都放在了github上:https://github.com/googlesamples

  2. Android 官方DEMO - ActionBarCompat-Basic

    ActionBarCompat-Basic Demo下载地址:https://github.com/googlesamples/android-ActionBarCompat-Basic/#readm ...

  3. Android 官方DEMO BasicNetworking

    本示例演示如何使用Android API检查网络连接. Demo下载地址:https://github.com/googlesamples/android-BasicNetworking/#readm ...

  4. 使用Red5-Pro Android官方Demo拆解分析(一)

    一.配置文件 1.导入库文件jniLibs到main文件夹下 2.导入red5streaming.jar 3.在build里到入其他的包,代码如下: dependencies { implementa ...

  5. 如何成功实施SDL提供的官方Android平台Demo

    如何成功实施SDL提供的官方Android平台Demo 作者:雨水  日期:2014-4-30 编写说明:SDL的官方提供了一个Anroid的demo模板SDLActivity,无法直接执行,依照官方 ...

  6. 解决Android微信支付官方demo运行失败

    Android微信支付官方demo运行失败,在此简单记录一下解决步骤 1.httpclient错误 官方给的demo是eclipse的,打开之后提示httpclient的错误,我知道在as下解决htt ...

  7. android开源项目之OTTO事件总线(二)官方demo解说

    官方demo见  https://github.com/square/otto 注意自己该编译版本为2.3以上,默认的1.6不支持match_parent属性,导致布局文件出错. 另外需要手动添加an ...

  8. React Native官方DEMO

    官方给我们提供了UIExplorer项目,这里边包含React Native的基本所有组件的使用介绍和方法. 运行官方DEMO步骤如下 安装react native环境 React Native项目源 ...

  9. 改造 Android 官方架构组件 ViewModel

    前言 Android 官方架构组件在今年 5 月份 Google I/O 大会上被公布, 直到 11 月份一直都是测试版, 由于工作比较繁忙, 期间我只是看过类似的文章, 但没有在实际项目中使用过, ...

随机推荐

  1. Centos7静默安装Weblogic12C

      1.前言 WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发.集成.部署和管理大型分布式W ...

  2. Vagrant挂载目录失败mount: unknown filesystem type ‘vboxsf’

    一.背景 ​ 最近在玩Mac OS下的虚拟机,然后有朋友推荐了我Vagrant,但是在设置完跟宿主机共享目录然后启动虚拟机的时候,出现了vagrant mount: unknown filesyste ...

  3. Apache-Flink深度解析-State

    摘要: 实际问题 在流计算场景中,数据会源源不断的流入Apache Flink系统,每条数据进入Apache Flink系统都会触发计算.如果我们想进行一个Count聚合计算,那么每次触发计算是将历史 ...

  4. java发送http get请求的两种方式

    长话短说,废话不说 一.第一种方式,通过HttpClient方式,代码如下: public static String httpGet(String url, String charset) thro ...

  5. zabbix-proxy使用配置

    简介 zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix pr ...

  6. python 要掌握面向对象,你得会做这些题

    1,面向对象三大特性,各有什么用处,说说你的理解. 继承:解决代码重用问题 多态:多态性,可以在不考虑对象类型的情况下而直接使用对象 封装:明确的区分内外,控制外部对隐藏属性的操作行为,隔离复杂度 2 ...

  7. 浅谈Web服务器和应用服务器的区别

    1Web服务器和应用服务器简介 通俗的讲,Web服务器传送页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods).确切一点,你可以说:Web服务器专 ...

  8. 分布式系统监视zabbix讲解七之分布式监控--技术流ken

    分布式监控 概述 Zabbix通过Zabbix proxy为IT基础设施提供有效和可用的分布式监控 代理(proxy)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器. Pro ...

  9. 业务开发(五)—— Java代码

    0x01.java.util.NoSuchElementException 表示在线程中访问越界.比如队列为空,这时你要remove()时就会报这个错误 0x02.线程的同步与异步 如果两个业务可以不 ...

  10. ElasticSearch安装及HEAD插件配置

    1. 安装 ElasticSearch 直接下载 zip 包解压即可,假设解压到 E:\ESTool\elasticsearch-5.6.3 2. 安装 nodejs 和 npm head 插件本身是 ...