ActionBar的使用(包括返回按钮,Tab标签,与ViewPager连用)

ActionBar

  1. 引用v7-appcompat
  2. Activity继承AppcompatActivity
  3. android:theme=”@style/Theme.AppCompat.Light” >

返回按钮的处理

1 Activity类中写下一下代码,获取actionBar,添加返回按钮

    ActionBar actionBar = getSupportActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);

2 AndroidManifest.xml中添加一下代码,其中android:parentActivityName表示当前Activity的上一个Activity

     <activity  android:name=".DetailActivity"
        android:label="@string/app_detail"
         android:parentActivityName="com.itheima.googleplay.MainActivity"
        >
         <!-- Parent activity meta-data to support 4.0 and lower -->
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.itheima.googleplay.MainActivity" />
    </activity>

实现ActionBar Tab标签

1 在Drawable 目录下 写了一个标签的状态选择器

2 实现自定义主题

    <?xml version="1.0" encoding="utf-8"?>
<resources>
     <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme"
           parent="@style/Theme.AppCompat.Light">
    <item name="android:actionBarTabStyle">@style/MyActionBarTabs</item> 

        <!-- Support library compatibility -->
        <item name="actionBarTabStyle">@style/MyActionBarTabs</item>
    </style>

    <!-- ActionBar tabs styles -->
    <style name="MyActionBarTabs"
           parent="@style/Widget.AppCompat.ActionBar.TabView">
        <!-- tab indicator -->
        <item name="android:background">@drawable/actionbar_tab_indicator</item>

        <!-- Support library compatibility -->
        <item name="background">@drawable/actionbar_tab_indicator</item>
    </style>
</resources>

3 在代码里添加标签,与ViewPager一起使用

    ActionBar actionBar = getSupportActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    Tab tab1=actionBar.newTab().setText("标签一").setTabListener(new MyTabListener());
    actionBar.addTab(tab1);

    //viewPager
    init(){
    mViewPager = (ViewPager) findViewById(R.id.vp);
    mViewPager.setAdapter(new MainAdapter(fm));

    //设置ViewPager的SimpleOnPageChangeListener
    mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener(){
        @Override
        public void onPageSelected(int position) {
            super.onPageSelected(position);
            getActionBar().setSelectedNavigationItem(position);//滑动时Page改变与Tab变化同步
        }
    });
    }

    private class MainAdapter extends FragmentStatePagerAdapter {

    public MainAdapter(FragmentManager fragmentManager) {
        super(fragmentManager);
    }

    @Override
    public Fragment getItem(int position) {
        /*switch(position){
            case 0 : return new HomeFragment();
            case 1 : return new AppFragment();
            case 2 : return new GameFragment();
            case 3 : return new SubjectFragment();
            case 4 : return new CategoryFragment();
            case 5 : return new TopFragment();
            default : return null;
        }*/
        return FragmentFactory.createFragment(position);
    }

    @Override
    public int getCount() {
        return tabNames.length;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return tabNames[position];
    }
}
//接上面的TabListener接口
private class MyTabListener implements ActionBar.TabListener{
    @Override
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
        mViewPager.setCurrentItem(tab.getPosition());
    }

    @Override
    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
    }

    @Override
    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
    }
}

    //最后别忘了在布局文件里加上ViewPager组件
    <android.support.v4.view.ViewPager
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    android:id="@+id/vp"
    >
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值