ActionBar使用方法 - Android活动栏(二)

简介:
有关Android活动栏-ActionBar的功能除了添加活动条目 Action Items和添加活动视图 Action View外今天Android123和大家一起来看下支持多Fragment切换的ActionBar标签页和下拉导航。

  三、添加标签 Tabs

   在ActionBar中实现标签页可以实现android.app.ActionBar.TabListener ,重写onTabSelected、onTabUnselected和onTabReselected方法来关联Fragment。代码如下

  private class MyTabListener implements ActionBar.TabListener {
    private TabContentFragment mFragment;
 
    // Called to create an instance of the listener when adding a new tab
    public TabListener(TabContentFragment fragment) {
        mFragment = fragment;
    }
 
    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        ft.add(R.id.fragment_content, mFragment, null);
    }
 
    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        ft.remove(mFragment);
    }
 
    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
        // do nothing
    }
 
}

 接下来我们创建ActionBar在Activity中,代码如下

  @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main); 
 
    final ActionBar actionBar = getActionBar();  //Android开发网提示getActionBar方法一定在setContentView后面
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
    actionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE); 
 
    Fragment artistsFragment = new ArtistsFragment(); 
    actionBar.addTab(actionBar.newTab().setText(R.string.tab_artists)
            .setTabListener(new TabListener(artistsFragment)));
 
    Fragment albumsFragment = new AlbumsFragment();
    actionBar.addTab(actionBar.newTab().setText(R.string.tab_albums)
            .setTabListener(new TabListener(albumsFragment)));
}

 四、添加下拉导航 Drop-down Navigation

 创建一个SpinnerAdapter提供下拉选项,和Tab方式不同的是Drop-down只需要修改下setNavigationMode的模式,将ActionBar.NAVIGATION_MODE_TABS改为ActionBar.NAVIGATION_MODE_LIST,最终改进后的代码为

ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);You should perform this during your activity's onCreate() method.

actionBar.setListNavigationCallbacks(mSpinnerAdapter, mNavigationCallback);

 上面我们通过setListNavigationCallbacks方法绑定一个SpinnerAdapter控件,具体的OnNavigationListener代码示例为

  mOnNavigationListener = new OnNavigationListener() { 
 
  String[] strings = getResources().getStringArray(R.array.action_list);
 
  @Override
  public boolean onNavigationItemSelected(int position, long itemId) { 
 
    ListContentFragment newFragment = new ListContentFragment();
    FragmentTransaction ft = openFragmentTransaction(); 
  
    ft.replace(R.id.fragment_container, newFragment, strings[position]); 
 
    ft.commit();
    return true;
  }
};

而其中的ListContentFragment的代码为

 public class ListContentFragment extends Fragment {
    private String mText;
 
    @Override
    public void onAttach(Activity activity) { 

      super.onAttach(activity);
      mText = getTag();
    }
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) { 

        TextView text = new TextView(getActivity());
        text.setText(mText);
        return text;
    }
}

 有关Android ActionBar的四种方式我们已经大概了解,具体的示例工程代码,明天Android开发网继续解析。

相关文章
|
6月前
|
存储 传感器 定位技术
《移动互联网技术》 第四章 移动应用开发: Android Studio开发环境的使用方法:建立工程,编写源程序,编译链接,安装模拟器,通过模拟器运行和调试程序
《移动互联网技术》 第四章 移动应用开发: Android Studio开发环境的使用方法:建立工程,编写源程序,编译链接,安装模拟器,通过模拟器运行和调试程序
68 0
|
10月前
|
数据可视化 程序员 开发工具
Android studio配置git及使用方法
Android studio配置git及使用方法
|
10月前
|
Java 开发工具 Android开发
Android studio配置svn及使用方法
Android studio配置svn及使用方法
|
存储 Android开发
android Jetpack—ViewModel使用方法和详细原理解析
android Jetpack—ViewModel使用方法和详细原理解析
812 0
android Jetpack—ViewModel使用方法和详细原理解析
|
存储 数据库 Android开发
android中数据存储的contentprovider的使用方法
android中数据存储的contentprovider的使用方法
103 0
|
Android开发
android手机操作SD的使用方法
android手机操作SD的使用方法
66 0
|
自然语言处理 Java C#
浅谈 Unity、iOS、Android 闭包的使用方法
浅谈 Unity、iOS、Android 闭包的使用方法
212 0
浅谈 Unity、iOS、Android 闭包的使用方法
|
算法 开发工具 Android开发
android自定义控件-Path的进阶使用方法
android自定义控件-Path的进阶使用方法
308 0
android自定义控件-Path的进阶使用方法
|
Android开发
【Android 异步操作】AsyncTask 异步任务 ( 参数简介 | 方法简介 | 使用方法 | AsyncTask 源码分析 )
【Android 异步操作】AsyncTask 异步任务 ( 参数简介 | 方法简介 | 使用方法 | AsyncTask 源码分析 )
170 0
|
Java Android开发
Android Studio SVN 使用方法
Android Studio SVN 使用方法
Android Studio SVN 使用方法