0

我有三个嵌套片段(在主要片段内),我使用TabLayoutViewPager实现。在我的主要片段中,我有一个Spinner视图,用于过滤前两个片段的内容。不过,我不希望这个Spinner视图出现在我的第三个片段中。要实现它,我使用addOnPageChangeListener(),如下所示:viewpager与tabLayout滚动问题

mallDropDown是我的Spinner查看。

但是,只有当我通过点击标题选择片段时,该实现才有效。如果我通过滑动来滚动片段,那么它非常不稳定,即,有时Spinner不应该出现,等等。

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
      @Override 
      public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

      } 

      @Override 
      public void onPageSelected(int position) { 

       switch (position) { 
        case 0: 
         mallDropDown.setVisibility(View.VISIBLE); 
         break; 
        case 1: 
         mallDropDown.setVisibility(View.VISIBLE); 
         break; 
        case 2: 
         mallDropDown.setVisibility(View.GONE); 
         break; 
        default: 
         mallDropDown.setVisibility(View.VISIBLE); 
         break; 
       } 
      } 

      @Override 
      public void onPageScrollStateChanged(int state) { 

      } 
     }); 
+0

你试图解决这个在PageScrolled()吗? – zkminusck

+0

@zkminusck nope – stud91

回答

0

检查这个onPageScrollStateChanged,它可能工作

@Override 
public void onPageScrollStateChanged(int state) { 
      super.onPageScrollStateChanged(state); 
      if(state == ViewPager.SCROLL_STATE_IDLE) { 
        // hide if not 
       } 
      }