Android编程之ActionBar Tabs用法实例分析

所属分类: 软件编程 / Android 阅读数: 31
收藏 0 赞 0 分享

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结

希望本文所述对大家Android程序设计有所帮助。

更多精彩内容其他人还在看

android byte[] 和short[]转换的方法代码

这篇文章主要介绍了android byte[] 和short[]转换的方法代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

Android获取应用程序大小的方法

这篇文章主要介绍了Android获取应用程序大小的方法,有需要的朋友可以参考一下
收藏 0 赞 0 分享

Android获取其他包的Context实例代码

这篇文章主要介绍了Android获取其他包的Context实例代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

Android放大镜的实现代码

这篇文章主要介绍了Android放大镜的实现代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

Android 读取Properties配置文件的小例子

这篇文章主要介绍了Android 读取Properties配置文件的小例子,有需要的朋友可以参考一下
收藏 0 赞 0 分享

Android通讯录开发之删除功能的实现方法

这篇文章主要介绍了Android通讯录开发之删除功能的实现方法,有需要的朋友可以参考一下
收藏 0 赞 0 分享

使用ViewPager实现android软件使用向导功能实现步骤

现在的大部分android软件,都是使用说明,就是第一次使用该软件时,会出现向导,可以左右滑动,然后就进入应用的主界面了,下面我们就实现这个功能
收藏 0 赞 0 分享

android在异步任务中关闭Cursor的代码方法

android在异步任务中如何关闭Cursor?在我们开发应用的时候,很多时候会遇到这种问题,下面我们就看看代码如何实现
收藏 0 赞 0 分享

Android自定义桌面功能代码实现

android自定义桌面其实很简单,看一个例子就明白了
收藏 0 赞 0 分享

android将图片转换存到数据库再从数据库读取转换成图片实现代码

有时候我们想把图片存入到数据库中,尽管这不是一种明智的选择,但有时候还是不得以会用到,下面说说将图片转换成byte[]数组存入到数据库中去,并从数据库中取出来转换成图像显示出来
收藏 0 赞 0 分享
查看更多