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

 更新时间:2017年03月14日 10:10:48   作者:Flying_tao  
这篇文章主要介绍了Android编程之ActionBar Tabs用法,结合实例形式分析了ActionBar Tabs的功能及Tab切换不同的Fragment的相关实现技巧,需要的朋友可以参考下

本文实例讲述了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编程实现改变控件背景及形态的方法

    Android编程实现改变控件背景及形态的方法

    这篇文章主要介绍了Android编程实现改变控件背景及形态的方法,涉及Android控件布局设置的相关技巧,需要的朋友可以参考下
    2016-02-02
  • Android布局之帧布局FrameLayout详解

    Android布局之帧布局FrameLayout详解

    这篇文章主要为大家详细介绍了Android布局之帧布局FrameLayout ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Android TextView渐变颜色和方向及动画效果的设置详解

    Android TextView渐变颜色和方向及动画效果的设置详解

    TextView的在安卓中可以理解为一个文本视图控件,Android的视图控件的基类是View类,可以理解的TextView是View的子类。我们通常在.XML布局文件中会为文本视图控件指定各种属性来设置它的样式,今天我们要讲的当然不是传统常见的那种,将会带有渐变颜色和方向及动画效果
    2021-11-11
  • android非RxJava环境下使用Handler实现预加载

    android非RxJava环境下使用Handler实现预加载

    这篇文章主要介绍了android非RxJava环境下使用Handler实现预加载的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • Android DialogFragment使用之底部弹窗封装示例

    Android DialogFragment使用之底部弹窗封装示例

    这篇文章主要为大家介绍了Android DialogFragment使用之底部弹窗封装示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Android Studio 创建自定义控件的方法

    Android Studio 创建自定义控件的方法

    这篇文章主要介绍了Android Studio 创建自定义控件的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Android获得当前正在显示的activity类名的方法

    Android获得当前正在显示的activity类名的方法

    这篇文章主要介绍了Android获得当前正在显示的activity类名的方法,分析了权限的修改与Java代码的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • Android4.4新增函数访问外部存储

    Android4.4新增函数访问外部存储

    这篇文章主要介绍了Android4.4新增函数访问外部存储的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • 详解Android中的Menu菜单键

    详解Android中的Menu菜单键

    本文给大家介绍Android中的设置按钮,长按或点击菜单键,涉及到menu菜单的基本用法,本文介绍非常详细具有参考价值,特此分享供大家学习
    2016-03-03
  • Android编程实现3D旋转效果实例

    Android编程实现3D旋转效果实例

    这篇文章主要介绍了Android编程实现3D旋转效果的方法,基于Android的Camera类实现坐标变换达到图片3D旋转效果,需要的朋友可以参考下
    2016-01-01

最新评论