Android ActionBar详解(三):ActionBar实现切换Tabs标签

翻译 2013年12月04日 22:56:20

实现切换Tabs标签;

  

 Activity代码:  

  1. public class ActionBarTabs extends Activity {  
  2.   
  3. @Override  
  4. protected void onCreate(Bundle savedInstanceState) {  
  5. super.onCreate(savedInstanceState);  
  6. setContentView(R.layout.action_bar_tabs);  
  7. }  
  8.   
  9. public void onAddTab(View v) {  
  10. final ActionBar bar = getActionBar();  
  11. final int tabCount = bar.getTabCount();  
  12. final String text = "Tab " + tabCount;  
  13.   
  14. bar.addTab(bar.newTab().setText(text)  
  15. .setTabListener(new TabListener(new TabContentFragment(text))));  
  16. }  
  17.   
  18. public void onRemoveTab(View v) {  
  19. final ActionBar bar = getActionBar();  
  20. bar.removeTabAt(bar.getTabCount() - 1);  
  21. }  
  22.   
  23. public void onToggleTabs(View v) {  
  24. final ActionBar bar = getActionBar();  
  25.   
  26. if (bar.getNavigationMode() == ActionBar.NAVIGATION_MODE_TABS) {  
  27. bar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);  
  28.   
  29. bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE, ActionBar.DISPLAY_SHOW_TITLE);  
  30. else {  
  31. bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);  
  32. bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);  
  33. }  
  34. }  
  35.   
  36. public void onRemoveAllTabs(View v) {  
  37. getActionBar().removeAllTabs();  
  38. }  
  39.   
  40. private class TabListener implements ActionBar.TabListener {  
  41. private TabContentFragment mFragment;  
  42. public TabListener(TabContentFragment fragment) {  
  43.   
  44. mFragment = fragment;  
  45. }  
  46.   
  47. public void onTabSelected(Tab tab, FragmentTransaction ft) {  
  48. ft.add(R.id.fragment_content, mFragment, mFragment.getText());  
  49. }  
  50.   
  51.    
  52. public void onTabUnselected(Tab tab, FragmentTransaction ft) {  
  53. ft.remove(mFragment);  
  54. }  
  55.   
  56. public void onTabReselected(Tab tab, FragmentTransaction ft) {  
  57. Toast.makeText(ActionBarTabs.this"Reselected!", Toast.LENGTH_SHORT).show();  
  58. }  
  59.   
  60. }  
  61.   
  62. private class TabContentFragment extends Fragment {  
  63. private String mText;  
  64. public TabContentFragment(String text) {  
  65. mText = text;  
  66. }  
  67.   
  68. public String getText() {  
  69. return mText;  
  70. }  
  71.     
  72. @Override  
  73. public View onCreateView(LayoutInflater inflater, ViewGroup container,  
  74. Bundle savedInstanceState) {  
  75. View fragView = inflater.inflate(R.layout.action_bar_tab_content, container, false);  
  76. TextView text = (TextView) fragView.findViewById(R.id.text);  
  77. text.setText(mText);  
  78. return fragView;  
  79. }  
  80. }  
  81. }  

涉及的布局文件action_bar_tabs.xml代码为:
  1. < ?xml version="1.0" encoding="utf-8"?>  
  2. < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.   
  4. android:layout_width="match_parent"  
  5. android:layout_height="match_parent"  
  6. android:orientation="vertical">  
  7.   
  8. < FrameLayout android:id="@+id/fragment_content"  
  9. android:layout_width="match_parent"  
  10. android:layout_height="0dip"  
  11. android:layout_weight="1" />  
  12.   
  13. < LinearLayout android:layout_width="match_parent"  
  14. android:layout_height="0dip"  
  15. android:layout_weight="1"  
  16. android:orientation="vertical">  
  17.   
  18. < Button android:id="@+id/btn_add_tab"  
  19. android:layout_width="wrap_content"  
  20. android:layout_height="wrap_content"  
  21. android:text="@string/btn_add_tab"  
  22. android:onClick="onAddTab" />  
  23.   
  24. < Button android:id="@+id/btn_remove_tab"  
  25. android:layout_width="wrap_content"  
  26. android:layout_height="wrap_content"  
  27. android:text="@string/btn_remove_tab"  
  28. android:onClick="onRemoveTab" />  
  29.   
  30. < Button android:id="@+id/btn_toggle_tabs"  
  31. android:layout_width="wrap_content"  
  32. android:layout_height="wrap_content"  
  33. android:text="@string/btn_toggle_tabs"  
  34. android:onClick="onToggleTabs" />  
  35.   
  36. < Button android:id="@+id/btn_remove_all_tabs"  
  37. android:layout_width="wrap_content"  
  38. android:layout_height="wrap_content"  
  39. android:text="@string/btn_remove_all_tabs"  
  40. android:onClick="onRemoveAllTabs" />  
  41. < /LinearLayout>  
  42.   
  43. < /LinearLayout>  

布局文件action_bar_tab_content.xml;
  1. < ?xml version="1.0" encoding="utf-8"?>  
  2. < TextView xmlns:android="http://schemas.android.com/apk/res/android"  
  3.   
  4. android:id="@+id/text"  
  5. android:layout_width="wrap_content"  
  6. android:layout_height="wrap_content" /> 



http://blog.csdn.net/t12x3456/article/details/8145298

ActionBar之属性详解总结(一)

关于actionbar的讲解虽多但免不了令初学者有点眼花缭乱,在这里我就进行详细的总结介绍: actionbar是3.0之后出现的控件,而3.0系统又是平板专属的,所以使用actionbar的最低版本...
  • mxcsdn
  • mxcsdn
  • 2016年02月13日 10:21
  • 1350

Android ActionBar完全解析,使用官方推荐的最佳导航栏(下)

限于篇幅的原因,在上篇文章中我们只学习了ActionBar基础部分的知识,那么本篇文章我们将接着上一章的内容继续学习,探究一下ActionBar更加高级的知识。如果你还没有看过前面一篇文章的话,建议先...
  • sinyu890807
  • sinyu890807
  • 2014年06月19日 09:40
  • 68799

Android ActionBar的源代码分析(一)

ActionBar是android的一个非常重要开发组件,在很多商业应用中到处可见,也是很多android开发人员必须熟练掌握的开发技术,下面就从源码角度来分析ActionBar的实现过程。 从哪里开...
  • Job_Hesc
  • Job_Hesc
  • 2015年03月18日 20:34
  • 2845

一探ActionBar和ToolBar的区别

ActionBar ActionBar是一个确定用户位置的窗口功能,并且能提供用户操作和导航的模块。使用ActionBar能够为用户提供一个熟悉的界面进行界面的切换,这个切换能够使系统更优雅是适应不...
  • dangnianmingyue_gg
  • dangnianmingyue_gg
  • 2016年12月30日 10:22
  • 944

解决ActionBar字体设置

首先,字体是由ActionBar的Tittle部分显示,而ActionBar是由Theme属性来控制的,所以要形成这样的解决思路: theme->ActionBar->Tittle->最终的显示。 ...
  • luochoudan
  • luochoudan
  • 2016年07月27日 13:11
  • 884

Android中ActionBar中不显示overflow(就是三个点的那个按钮)

d's'
  • jdsjlzx
  • jdsjlzx
  • 2014年07月02日 17:15
  • 15607

Android 顶部标题栏ActionBar详解

转载自http://www.cnblogs.com/yc-755909659/p/4290784.html 一、ActionBar介绍   在Android 3.0中除了我们重点讲解的Fragm...
  • liuwan1992
  • liuwan1992
  • 2016年10月15日 21:06
  • 5246

Android基础--ActionBar的基本用法,自定义View,标题栏

1、ActionBar的简介ActionBar位于Activity的顶部,可用来显示activity的标题、Icon、Actions和一些用于交互的View。它也可被用于应用的导航。ActionBar...
  • android_it
  • android_it
  • 2016年06月29日 14:05
  • 1861

ActionBar随滑动显示隐藏

在安卓开发中,Toolbar随滑动而比较平滑的显示和隐藏,这样的展示方式比较常见,但是,实现方式各有不同,前段时间,利用OnScrollListener来实现了一种相比比较灵活的实现方式,滑动比较流畅...
  • boybeak
  • boybeak
  • 2015年10月11日 22:55
  • 6339

Pro Android学习笔记(五十):ActionBar(3):搜索条

ActionBar中的搜索条 我们同样可以在Action Bar中嵌入搜索条。在小例子中,我们在action bar中嵌入一个搜索框的widget(称为search view)。当我们输入搜索内容,...
  • flowingflying
  • flowingflying
  • 2013年11月05日 11:27
  • 21990
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android ActionBar详解(三):ActionBar实现切换Tabs标签
举报原因:
原因补充:

(最多只允许输入30个字)