Android编程之ActionBar Tabs用法实例分析
作者:Flying_tao 发布时间:2021-11-08 08:49:26
标签:Android,ActionBar,Tabs
本文实例讲述了Android编程之ActionBar Tabs用法。分享给大家供大家参考,具体如下:
这里主要实现用Tab切换不同的Fragment,点击View显示or隐藏ActionBar,把ActionBar 设为透明,使界面更加友好,详细代码见资源里的ActionBarTabs。
ActionBar Tab主要用于Fragment之间的切换,其必须要设置ActionBar.TabListener,详细代码如下
ActionBarActivity.Java:
import android.app.ActionBar;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.app.ActionBar.Tab;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.MotionEvent;
import android.view.Window;
public class ActionBarActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//使ActionBar变得透明
requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
setContentView(R.layout.main);
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// remove the activity title to make space for tabs
actionBar.setDisplayShowTitleEnabled(false);
AFragment aFragment = new AFragment();
actionBar.addTab(actionBar.newTab().setText("Tab-A")
.setTabListener(new ListenerA(aFragment)));
BFragment bFragment = new BFragment();
actionBar.addTab(actionBar.newTab().setText("Tab-B")
.setTabListener(new ListenerB(bFragment)));
}
//点击显示or隐藏ActionBar
public boolean onTouchEvent(MotionEvent event){
ActionBar bar = getActionBar();
switch(event.getAction()){
case MotionEvent.ACTION_UP:
if(bar.isShowing()) bar.hide();
else bar.show();
break;
default:
break;
}
return true;
}
private class ListenerA implements ActionBar.TabListener {
private AFragment mFragment;
// Called to create an instance of the listener when adding a new tab
public ListenerA(AFragment fragment) {
mFragment = fragment;
}
public void onTabSelected(Tab tab, FragmentTransaction ft) {
ft.add(R.id.fragment, mFragment, null);
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
ft.remove(mFragment);
}
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// do nothing }
}
}
private class ListenerB implements ActionBar.TabListener {
private BFragment mFragment;
// Called to create an instance of the listener when adding a new tab
public ListenerB(BFragment fragment) {
mFragment = fragment;
}
public void onTabSelected(Tab tab, FragmentTransaction ft) {
ft.add(R.id.fragment, mFragment, null);
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
ft.remove(mFragment);
}
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// do nothing }
}
}
}
其中涉及到两个Fragment,在前面Fragment的笔记中讲过,这里就不再赘述。类AFragment实现如下,BFragment实现与这类似:
public class AFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.alayout, container, false);
}
}
希望本文所述对大家Android程序设计有所帮助。


猜你喜欢
- 类的结构包括 :1. 成员变量2. 成员方法3. 构造方法4. 代码块5. 内部类第一 构造方法的作用主要有以下三方面的作用:(1)在构造方
- 前言在Android开发过程中,我发现很多安卓源代码里应用了设计模式,比较常用的有适配器模式(各种adapter),建造者模式(Alert
- 我就废话不多说了,大家还是直接看代码吧~/* *es配置类 * */@Configurationpublic class ElasticSe
- 安装完 Android Studio 后启动,却报错如下:failed to create jvm error code -4这一般应是内存
- flex 布局算法Flutter 弹性布局的基石 是 flex 和 flexible。理解了这两个 widget,后面的row,column
- 目录1 HttpClient简介2 代码实现2.1 服务端2.1.1 新建控制器2.1.2 新建启动器2.2 客户端2.2.1 添加依赖2.
- 很多时候需要先判断当前用户的网络,才会继续之后的一些处理逻辑。但网络类型获取这一块,我用我自己的的手机调试时遇到一些问题,这里记录一下。一加
- 圆形识别方案识别流程判断是否为封闭图形;根据圆的方程,取输入点集中的1/6、3/6、5/6处的三个点,求得圆的方程,获取圆心及半径;取点集中
- LBS(Location Based Services)直译的话就是基于地理位置的服务,这里面至少有两层意思,第一要能轻易的获取当前的地理位
- 我们经常用简单数据类型,比如int作为泛型Dictionary<TKey,TValue>的key,但有时候我们希望自定义数据类型
- Java-Web获取客户端真实IP:发生的场景:服务器端接收客户端请求的时候,一般需要进行签名验证,客户端IP限定等情况,在进行客户端IP限
- 1.在C#中,类名首字母需大写。如:class Student2.在C#中Main()方法有四种形式:static void Main(st
- 一、WebRequestMethods.Ftp类:表示可与 FTP 请求一起使用的 FTP 协议方法的类型。AppendFile:表示要用于
- 为了实现自定义的Menu和ContextMenu效果,下面演示代码通过派生ProfessionalColorTable类,在自定义的类中重写
- 断断续续的总算的把android开发和逆向
- 本文实例为大家分享了人脸认证源码faceIdentify的具体代码,供大家参考,具体内容如下人脸认证:using AForge.Video.
- 1. Collection是集合类的一个顶级接口,其直接继承接口有List与Set。Collection
- C#事件标准命名规则一些开源代码的事件命名很混乱,以此文章用作本人以后工作的参考。事件的名称事件始终是指某个操作,这个操作可能正在发生,也可
- 实践过程效果代码public partial class Form1 : Form{ public Form1()
- 有些情况下,在开发一些C#小项目的时候,交付给别人用的时候就是单独EXE文件,但是若涉及什么EXCEL,图片什么的时候,比较麻烦,这时候可以