Android ActionBar與ViewPager合用

來源:互聯網
上載者:User

標籤:android   des   style   blog   class   code   

 

內容可以左右滑動,因為使用了ViewPager(我這裡用了V4包)

 

view_pager_main.xml

<?xml version="1.0" encoding="utf-8"?><android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"           android:id="@+id/viewPager"           android:layout_width="match_parent"           android:layout_height="match_parent"> </android.support.v4.view.ViewPager>


activity

package com.example.actionBarTest.actionBarTabViewPager;import android.app.ActionBar;import android.app.FragmentTransaction;import android.os.Bundle;import android.os.Parcelable;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.view.ViewGroup;import com.example.actionBarTest.R;import java.util.ArrayList;import java.util.List;/** * Created by Heyiyong on 2014-5-2 上午10:17. */public class ViewPagerTabActivity extends FragmentActivity implements ActionBar.TabListener {    private ViewPager viewPager;    private List<Fragment> fragments;    private ActionBar actionBar;    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.view_pager_main);        HomeFragment homeFragment = new HomeFragment();        MusicFragment musicFragment = new MusicFragment();        VideoFragment videoFragment = new VideoFragment();        fragments = new ArrayList<Fragment>();        fragments.add(homeFragment);        fragments.add(musicFragment);        fragments.add(videoFragment);        //設定ViewPager部分        viewPager = (ViewPager) findViewById(R.id.viewPager);        viewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));        //設定actionBar部分        actionBar = getActionBar();        if (actionBar != null) {            actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);            actionBar.addTab(actionBar.newTab().setText("首頁").setTabListener(this));            actionBar.addTab(actionBar.newTab().setText("音樂").setTabListener(this));            actionBar.addTab(actionBar.newTab().setText("視頻").setTabListener(this));        }        //viewPager與actionB整合部分        //當viewPager翻頁的時候,actionBar的tab也要隨之改變        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int i, float v, int i2) {            }            /**             * 當頁面選擇了之後調用該方法             */            @Override            public void onPageSelected(int i) {                actionBar.setSelectedNavigationItem(i);            }            @Override            public void onPageScrollStateChanged(int i) {            }        });    }    //————————————————————————————————————————-    //—————————————actionBar的回調 ———————————————————-    //————————————————————————————————————————-    @Override    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {        viewPager.setCurrentItem(tab.getPosition());    }    @Override    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {    }    @Override    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {    }    /**     * viewPager的適配器     */    class MyPagerAdapter extends FragmentPagerAdapter {        public MyPagerAdapter(FragmentManager fm) {            super(fm);        }        /**         * 只會運行一次         */        @Override        public Fragment getItem(int i) {            System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.getItem");            return fragments.get(i);        }        @Override        public int getCount() {            return fragments.size();        }        @Override        public Object instantiateItem(ViewGroup container, int position) {            System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.instantiateItem");            return super.instantiateItem(container, position);        }        @Override        public void destroyItem(ViewGroup container, int position, Object object) {            System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.destroyItem");            super.destroyItem(container, position, object);        }        @Override        public void restoreState(Parcelable state, ClassLoader loader) {            System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.restoreState");            super.restoreState(state, loader);        }        @Override        public Parcelable saveState() {            System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.saveState");            return super.saveState();        }        @Override        public void finishUpdate(ViewGroup container) {            System.out.println("com.example.actionBarTest.actionBarTabViewPager.ViewPagerTabActivity.MyPagerAdapter.finishUpdate");            super.finishUpdate(container);        }    }}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.