Android 官方Demo ActionBarCompat-Styled
ActionBarCompat-Styled Demo下载地址:https://github.com/googlesamples/android-ActionBarCompat-Styled/#readme
此示例演示了如何使用自定义的ActionBarCompat,它包含了三个分页标签。需要注意的是,ActionBar的分页模式已经在API 21以后被遗弃。
界面在不同设备上可能会有所差别,以下是其中一些截图:

实现步骤:
- 创建Activity并继承AppCompatActivity,实现ActionBar.TabListener接口;
- 在res资源文件夹下创建menu文件夹,并在menu文件夹下创建主菜单布局xml;
- 重写onCreateOptionsMenu()方法,创建并初始化菜单;
- 创建并初始化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的更多相关文章
- android 官方demo地址
android官方demo地址都放在了github上:https://github.com/googlesamples
- Android 官方DEMO - ActionBarCompat-Basic
ActionBarCompat-Basic Demo下载地址:https://github.com/googlesamples/android-ActionBarCompat-Basic/#readm ...
- Android 官方DEMO BasicNetworking
本示例演示如何使用Android API检查网络连接. Demo下载地址:https://github.com/googlesamples/android-BasicNetworking/#readm ...
- 使用Red5-Pro Android官方Demo拆解分析(一)
一.配置文件 1.导入库文件jniLibs到main文件夹下 2.导入red5streaming.jar 3.在build里到入其他的包,代码如下: dependencies { implementa ...
- 如何成功实施SDL提供的官方Android平台Demo
如何成功实施SDL提供的官方Android平台Demo 作者:雨水 日期:2014-4-30 编写说明:SDL的官方提供了一个Anroid的demo模板SDLActivity,无法直接执行,依照官方 ...
- 解决Android微信支付官方demo运行失败
Android微信支付官方demo运行失败,在此简单记录一下解决步骤 1.httpclient错误 官方给的demo是eclipse的,打开之后提示httpclient的错误,我知道在as下解决htt ...
- android开源项目之OTTO事件总线(二)官方demo解说
官方demo见 https://github.com/square/otto 注意自己该编译版本为2.3以上,默认的1.6不支持match_parent属性,导致布局文件出错. 另外需要手动添加an ...
- React Native官方DEMO
官方给我们提供了UIExplorer项目,这里边包含React Native的基本所有组件的使用介绍和方法. 运行官方DEMO步骤如下 安装react native环境 React Native项目源 ...
- 改造 Android 官方架构组件 ViewModel
前言 Android 官方架构组件在今年 5 月份 Google I/O 大会上被公布, 直到 11 月份一直都是测试版, 由于工作比较繁忙, 期间我只是看过类似的文章, 但没有在实际项目中使用过, ...
随机推荐
- 微信JSAPI支付回调
在微信支付中,当用户支付成功后,微信会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答. 在经历了千幸万苦之,填完了所有的JSAPI支付的坑后(微信JSAPI支付 跟 所遇到的那些坑) ...
- 源码安装ELK-5.6.10版本
目录: 一.介绍 二.安装JDK 三.安装Elasticsearch 四.安装Kibana 五.安装Nginx 六.安装Logstash 七.安装Logstash-forwarder 八.测试 系统环 ...
- DDD实战进阶第一波(十三):开发一般业务的大健康行业直销系统(订单上下文领域逻辑)
前一篇文章主要讲了订单上下文的POCO模型,其中订单与订单项中有大量的值对象.这篇文章主要讲讲这些值对象以及订单项.订单相关的领域逻辑. 1.ProductSKUs值对象领域逻辑:ProductSKU ...
- HashTable原理与源码分析
本文版权归 远方的风lyh和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作,如有错误之处忘不吝批评指正! HashTable内部存储结构 HashTable内部存储结构为数组+单向链 ...
- [NewLife.XCode]功能设置
NewLife.XCode是一个有10多年历史的开源数据中间件,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含 ...
- leetcode — unique-paths-ii
/** * Source : https://oj.leetcode.com/problems/unique-paths-ii/ * * * Follow up for "Unique Pa ...
- leetcode — permutations-ii
import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Source : https://o ...
- shell脚本动画小工具
shell脚本动画小工具 看gif图: shell脚本版 脚本内容如下: #!/usr/bin/env bash ## ---------------------------------------- ...
- python属性管理(1):基础
管理属性的几种方式 在python中访问.设置.删除对象属性的时候,有以下几种方式: 使用内置函数getattr().setattr()和delattr() 自己编写getter().setter() ...
- 解决Manjaro Linux无法安装搜狗拼音
更新:Manjaro 18.0rc1及更新版本不再需要本文的操作,可直接成功安装sogoupinyin 最近喜欢上了arch,然而遗憾的是没有太多时间用来折腾,所以选择了manjaro. 然而在安装s ...