一.添加标签 Tabs
在ActionBar中实现标签页可以实现android.app.ActionBar.TabListener ,重写onTabSelected、onTabUnselected和onTabReselected方法来关联Fragment。代码如下:
private class MyTabListener implements ActionBar.TabListener {
private TabContentFragment mFragment;
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) {
}
}
接下来我们创建ActionBar在Activity中,代码如下;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ActionBar actionBar = getActionBar(); //提示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);
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;
}
}
分享到:
相关推荐
ActionBar取代了传统的标题栏(title),其在activity位置就是title原有... ② 为在多个fragments之间切换提供标签(tabs)功能; ③ 为导航提供下拉列表; ④ 在“action项”位置提供交互式action组件,例如搜索框。
【Android进阶】(5)ActionBar详解源代码
android actionbar的简单实例 带返回按钮
Android ActionBar自定义布局
ActionBar中的下拉菜单操作
通过代码基本实现了ActionBar的所有实现
android-actionbar Android ActionBar 培训项目: : 第一次提交 在第一次提交中添加了一个操作栏按钮,以显示如何使用 drawable 文件夹以及 Android 如何使用其中的信息。 重要的是,添加的图标是谷歌提供的图标...
Android ActionBar 使用示例
详细的介绍了Action Bar的使用方法
android4.0使用的新技术!能自定义主题栏;使用十分方便;欢迎大家下载
ActionBar实现导航下拉列表效果,项目内含:源码+效果图+项目结构图 教程地址:http://blog.csdn.net/yangyu20121224/article/details/9050573
android actionbar切换fragment demo
Android 弹无虚发之第二弹:Android ActionBar 的其它用法(搜索、分享、隐藏复杂布局,模仿Google Play,微信)
actionbar+fragment实现顶部导航菜单的功能
ActionBar下拉导航+悬浮透明样式,相关博文:http://www.cnblogs.com/tianzhijiexian/p/3873587.html
Android ActionBar学习系列博文源代码下载。关于更多有关于Android学习的技术知识,请关注博客:http://blog.csdn.net/yegongheng
android actionbar通用组件,帮组开发者减少工作量
Android自定义ActionBar,常用的样式
Android 使用Fragment,ActionBar 实现tab标签切换页面的一个简单样例
Android自定义ActionBar示例。 用法参考: http://blog.csdn.net/zircon_1973/article/details/7680404