关于Fragment cyclelife和viewpager

时间:2014-12-13 13:01:25

标签: android android-viewpager fragment fragmenttransaction

我的应用程序是一个片段,有viewpager用fragmentA和fragmentB更改选项卡。 我通过drawlayout更改另一个片段后。 我回到第一个片段。 fragmentA和fragmentB没有与viewpager链接。 我认为这是关于Fragment cyclelife问题的。 但我无法找到答案。 请帮帮我。谢谢。 (我的英语不是很好。请用简单的词。谢谢)

public class Fragment_Viewpager extends Fragment  implements TabListener{

    private View v;
    ViewPager viewPager;
    ActionBar actionBar;
    ActionBar.Tab tab1;
    ActionBar.Tab tab2;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        v= inflater.inflate(R.layout.fragment_viewpager, container, false);

        viewPager=(ViewPager)v.findViewById(R.id.pager);
        Log.w("Step1","inviewPager");
        viewPager.setAdapter(new MyAdapter(getFragmentManager()));
        Log.w("Step2","inviewPager");
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int arg0) {
                // TODO 自動產生的方法 Stub
                actionBar.setSelectedNavigationItem(arg0);
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO 自動產生的方法 Stub

            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO 自動產生的方法 Stub

            }
        });

        Log.w("Step7","inviewPager");
        Log.w("Step8","inviewPager");
        return v;

    }

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

    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        viewPager.setCurrentItem(tab.getPosition());

    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        // TODO 自動產生的方法 Stub

    }

    class MyAdapter extends FragmentPagerAdapter
    {

        public MyAdapter(FragmentManager fm) {
            super(fm);


            Log.w("in","Fragment-2");
        }

        @Override
        public Fragment getItem(int arg0) {
            // TODO 自動產生的方法 Stub
            Log.w("in","Fragment-1");
            Fragment fragment = null;
            Log.w("in","Fragment000");
            if(arg0==0)
            {
                Log.w("in","FragmentA");
                fragment = new FragmentA();
            }
            if(arg0==1)
            {
                Log.w("in","FragmentB");
                fragment = new FragmentB();
            }
            return fragment;
        }

        @Override
        public int getCount() {
            // TODO 自動產生的方法 Stub
            return 2;
    }

    }

    @Override
    public void onStop() {
        super.onPause();

        Log.w("in","inStop");
    }

    @Override
    public void onPause() {
        super.onPause();
        getActivity().getActionBar().removeAllTabs();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
        Log.w("in","onPause");
        onDetach();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();

        Log.w("in","onDestroy");
    }

    @Override
    public void onResume() {
        super.onResume();

        Log.w("in","onResume");
    }

    @Override
    public void onStart() {






        Log.w("Step3","inviewPager");
        actionBar = getActivity().getActionBar();
        Log.w("Step4","inviewPager");
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        Log.w("Step5","inviewPager");
        tab1=actionBar.newTab();
        tab2=actionBar.newTab();
        Log.w("Step6","inviewPager");
        tab1.setText("Tab 1");
        tab1.setTabListener(this);


        tab2.setText("Tab 2");
        tab2.setTabListener(this);
        actionBar.addTab(tab1);
        Log.w("in","onStart2");
        actionBar.addTab(tab2);
        super.onStart();
    }

}

0 个答案:

没有答案