viewpager setonpagechangelistener deprecated

后端 未结 6 1668
终归单人心
终归单人心 2020-12-02 07:13

Today I\'m trying to set ViewPager.setOnPageChangeListener and I\'ve found out that it\'s deprecated.

6条回答
  •  半阙折子戏
    2020-12-02 07:51

    1. Create an interface if need be;

      public interface FragmentLifecycle {
      public void onPauseFragment();
      public void onResumeFragment();
      

      }

    2. Implement Interface in every fragment in viewpager as shown

     public class FragmentCast extends Fragment implements FragmentLifecycle {
      @Override
        public void onPauseFragment() {
            Log.i(TAG, "onPauseFragment()");
            Toast.makeText(getActivity(), "onPauseFragment():" + TAG, Toast.LENGTH_SHORT).show();
        }
    
        @Override
        public void onResumeFragment() {
            Log.i(TAG, "onResumeFragment()");
            Toast.makeText(getActivity(), "onResumeFragment():" + TAG, Toast.LENGTH_SHORT).show();
        }
    
    1. List this is how u user the addOnPageListener

      enter viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { int currentPosition = 0;

          @Override
          public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
      
          }
      
          @Override
          public void onPageSelected(int position) {
      
      
              FragmentLifecycle   fragmentLifecycleToShow =(FragmentLifecycle) viewPager.getAdapter().instantiateItem(viewPager, viewPager.getCurrentItem());
              fragmentLifecycleToShow.onResumeFragment();
      
              FragmentLifecycle   fragmentLifecycleToHide =(FragmentLifecycle) viewPager.getAdapter().instantiateItem(viewPager, currentPosition);
              fragmentLifecycleToHide.onPauseFragment();
      
              currentPosition = position;
          }
      
          @Override
          public void onPageScrollStateChanged(int state) {
      
          }
      });
      
    2. Implement your calls in the onPauseFragment() or onResumeFragment()

提交回复
热议问题