how to do an event when i swipe from fragment to the other

牧云@^-^@ 提交于 2019-12-07 23:58:02

问题


this is my code about swipe between 6 fragments ,, i want to do an event when i swipe from one fragment to the other as loading some thing from internet ,, so please any help how can i do this ???,, and where can i put the code ,, i think about the progress dialog start it at function get title and cancel it at the beginning of the fragment is it applicable?? this is my code :

             package com.example.my_finalswipe;
                 import java.util.List;
                 import java.util.Locale;
            import java.util.Vector;
            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.FragmentPagerAdapter;
            import android.support.v4.view.ViewPager;
            import android.view.LayoutInflater;
            import android.view.View;
            import android.view.ViewGroup;

             public class MainActivity extends FragmentActivity {


            SectionsPagerAdapter mSectionsPagerAdapter;


            ViewPager mViewPager;
            List<Fragment> fragments ;

            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

                // Create the adapter that will return a fragment for each of the three
                // primary sections of the app.
               fragments = new Vector<Fragment>();

                        fragments.add(Fragment.instantiate(this, FragmentOne.class.getName()));
                        fragments.add(Fragment.instantiate(this, FragmentTwo.class.getName()));
                        fragments.add(Fragment.instantiate(this, FragmentThree.class.getName()));
                        fragments.add(Fragment.instantiate(this, FragmentFour.class.getName()));
                        fragments.add(Fragment.instantiate(this, FragmentFive.class.getName()));
                        fragments.add(Fragment.instantiate(this, FragmentSix.class.getName()));

            mSectionsPagerAdapter=new SectionsPagerAdapter(super.getSupportFragmentManager());

                // Set up the ViewPager with the sections adapter.
                mViewPager = (ViewPager) findViewById(R.id.pager);
                mViewPager.setAdapter(mSectionsPagerAdapter);

            //





            }





            public class SectionsPagerAdapter extends FragmentPagerAdapter {

                public SectionsPagerAdapter(FragmentManager fm) {

                    super(fm);
                }

                        @Override
                        public Fragment getItem(int position) {
                             int _pos = position % 6;
                             return fragments.get(_pos);

                        }

                @Override
                public int getCount() {
                    // Show 3 total pages.
                    return 6;
                }

                @Override
                public CharSequence getPageTitle(int position) {
                    final String title_section4="Section4";
                    final String title_section5="Section5";
                    final String title_section6="Section6";
                    final String title_section1="Section1";
                    final String title_section2="Section2";
                    final String title_section3="Section3";

                    Locale l = Locale.getDefault();
                    switch (position) {


                    case 0:
                        return title_section1.toUpperCase(l);

                    case 1:
                        return title_section2.toUpperCase(l);

                    case 2:
                        return title_section3.toUpperCase(l);

                    case 3:
                        return title_section4.toUpperCase(l);
                    case 4:
                        return title_section5.toUpperCase(l);
                    case 5:
                        return title_section6.toUpperCase(l);

                    }
                    return null;
                }
            }


            public static class FragmentOne extends Fragment {

                public static final String ARG_SECTION_NUMBER = "section_number";

                public FragmentOne() {
                }

                @Override
                public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                    View rootView = inflater.inflate(R.layout.one, container, false);

                    return rootView;
                }
            }


            public static class FragmentTwo extends Fragment {

                public static final String ARG_SECTION_NUMBER = "section_number";

                public FragmentTwo() {
                }

                @Override
                public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                    View rootView = inflater.inflate(R.layout.two, container, false);

                    return rootView;
                }
            }


            public static class FragmentThree extends Fragment {
                public static final String ARG_SECTION_NUMBER = "section_number";

                public FragmentThree() {
                }

                @Override
                public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                    View rootView = inflater.inflate(R.layout.three, container, false);

                    return rootView;
                }
            }



            public static class FragmentFour extends Fragment {

                public static final String ARG_SECTION_NUMBER = "section_number";

                public FragmentFour() {
                }

                @Override
                public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                    View rootView = inflater.inflate(R.layout.four, container, false);
                    return rootView;
                }
            }



            public static class FragmentFive extends Fragment {

                public static final String ARG_SECTION_NUMBER = "section_number";

                public FragmentFive() {
                }

                @Override
                public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                    View rootView = inflater.inflate(R.layout.five, container, false);
                   return rootView;
                }
            }


            public static class FragmentSix extends Fragment {

                public static final String ARG_SECTION_NUMBER = "section_number";

                public FragmentSix() {
                }

                @Override
                public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                    View rootView = inflater.inflate(R.layout.six, container, false);
                  return rootView;
                }
            }
             }

回答1:


Use ViewPager.OnPageChangeListener of your view pager to detect swipe OR implement custom view pager see this

ADD THIS

mViewPager.setOnPageChangeListener(new OnPageChangeListener() {

        @Override
        public void onPageSelected(int arg0) {
            // TODO Auto-generated method stub

            //DO THINGS HERE

        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onPageScrollStateChanged(int arg0) {
            // TODO Auto-generated method stub

        }
    });



回答2:


it is now replace with

addOnPageChangeListener



来源:https://stackoverflow.com/questions/17833226/how-to-do-an-event-when-i-swipe-from-fragment-to-the-other

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!