Android 导航条效果实现(五) ActionBar+Fragment
2016-09-19 17:21
453 查看
ActionBar(已过时,查看ToolBar)+Fragment实现选项卡的步骤:
当前窗体Activity类要继承于FragmentActivity,而不是Activity;获取ActionBar对象:通过当前上下文对象的getActionBar()方法来实现;
设置ActionBar对象的导航模式为Tab导航模式;
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
分别创建Tab对象:
通过ActionBar对象的newTab()方法创建Tab对象;
通过Tab对象的setText()设置选项卡文字;
通过Tab对象的setTabListener()设置选项卡监听事件。
自定义ActionBar.TabListener的监听器;
为ActionBar对象添加Tab对象。通过ActionBar对象的addTab()方法实现添加选项卡。
参考代码
MainActivity.javapackage com.noonecode.actionbartabdemo; import java.util.ArrayList; import java.util.List; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.ActionBar.TabListener; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; @SuppressWarnings("deprecation") public class MainActivity extends FragmentActivity { private List<Fragment> fragments; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取ActionBar ActionBar actionBar = getActionBar(); // ActionBar设置Tab模式 actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); // initdata fragments = new ArrayList<Fragment>(); fragments.add(new FragmentRecord()); fragments.add(new FragmentContacts()); fragments.add(new FragmentFavor()); // Tag区分tab Tab tab1 = actionBar.newTab().setTag(0).setText("通讯记录").setTabListener(listener); Tab tab2 = actionBar.newTab().setTag(1).setText("联系人").setTabListener(listener); Tab tab3 = actionBar.newTab().setTag(2).setText("收藏夹").setTabListener(listener); actionBar.addTab(tab1); actionBar.addTab(tab2); actionBar.addTab(tab3); } private TabListener listener = new TabListener() { @Override public void onTabSelected(Tab tab, android.app.FragmentTransaction ft) { // 当前tab的tag作为fragments的index下标 int position = (Integer) tab.getTag(); // 切换页面 FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.fl_container, fragments.get(position)); fragmentTransaction.commit(); } @Override public void onTabUnselected(Tab tab, android.app.FragmentTransaction ft) { } @Override public void onTabReselected(Tab tab, android.app.FragmentTransaction ft) { } }; }
activity_main.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/fl_container" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.noonecode.actionbartabdemo.MainActivity" > </FrameLayout>
每个Fragment很简单,不再赘述。
示例效果
注意
开始actionBar.setTab(…)方法,默认会触发TabListener的onTabSelected方法选中第一个Tab,这里需要注意一下。注意几个Fragment复制的时候,布局不要加载错了。
(完毕)
导航:
Android 导航条效果实现(一) TabActivity+TabHost
http://blog.csdn.net/qq_33425116/article/details/52573967
Android 导航条效果实现(二) FragmentTabHost
http://blog.csdn.net/qq_33425116/article/details/52575811
Android 导航条效果实现(三) ViewPager+PagerTabStrip
http://blog.csdn.net/qq_33425116/article/details/52577570
Android 导航条效果实现(四) ViewPager+自定义导航条
http://blog.csdn.net/qq_33425116/article/details/52584282
Android 导航条效果实现(五) ActionBar+Fragment
http://blog.csdn.net/qq_33425116/article/details/52587635
Android 导航条效果实现(六) TabLayout+ViewPager+Fragment
http://blog.csdn.net/qq_33425116/article/details/52599818
相关文章推荐
- Android编程心得-使用ActionBar+Fragment+ViewPager实现动态切换Menu效果
- Android UI之Tab(ActionBar+Fragment实现)
- ActionBar+Fragment实现导航条功能
- Android 导航条效果实现(二) FragmentTabHost
- Android开发之ViewPager+ActionBar+Fragment实现响应式可滑动Tab
- Android之ActionBar、Tabs、Fragment、ViewPager实现标签页切换并缓存页面
- [置顶] Android--(12)--Fragment+ActionBar实现页面导航
- Android笔记之Fragment+ActionBar实现可滑可按选项卡
- Android之ActionBar、Tabs、Fragment、ViewPager实现标签页切换并缓存页面
- 63 Android 抽屉效果的实现 + ActionBar Menu
- Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果
- Android典型界面设计(4)——使用ActionBar+Fragment实现tab切换
- ActionBar+ViewPager+Fragment实现滑动效果
- Android 实现Google-Inbox ActionBar开关效果
- Android 导航条效果实现(六) TabLayout+ViewPager+Fragment
- Android使用TabLayout、ViewPage和Fragment实现导航条的效果
- [Android] BottomBar+ViewPager+Fragment实现炫酷的底部导航效果20160523
- Android典型界面设计(4)——使用ActionBar+Fragment实现tab切换
- Android开发之ViewPager+ActionBar+Fragment实现响应式可滑动Tab
- 【Android开发日记】使用 NavigationDrawer + fragment 实现sherlockActionBar+slidingmenu 功能