2015-08-14 81 views
1

我有這個類:SimpleOnPageListener不會觸發

package com.shopkeep.pocketandroid.Utils; 

import android.support.v4.view.ViewPager; 
import android.widget.Toast; 

import com.shopkeep.pocketandroid.PocketApplication; 

public class PageChangeListener extends ViewPager.SimpleOnPageChangeListener { 

    @Override 
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
     Toast.makeText(PocketApplication.getContext(), "changed" + position, Toast.LENGTH_LONG).show(); 
    } 
} 

我在這裏使用它:

ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(), getTabTitles(), getTabFragments()); 
ViewPager pager = (ViewPager) findViewById(R.id.pager); 
pager.setAdapter(adapter); 
SlidingTabLayout tabs = (SlidingTabLayout) findViewById(R.id.tabs); 
tabs.setDistributeEvenly(); 

pager.setOnPageChangeListener(new PageChangeListener()); 
tabs.setViewPager(pager); 
pager.setCurrentItem(getDefaultTabIndex()); 

我能夠精細選項卡之間進行切換和負載片段罰款。

但是,我沒有看到我的Toast,並且在PageChangeListener中設置了一個斷點並且沒有被觸發。

爲什麼這不被觸發?我希望在頁面更改時收到通知。

我已經試過落實

@Override 
public void onPageSelected(int position) { 
    Toast.makeText(PocketApplication.getContext(), "changed" + position, Toast.LENGTH_LONG).show(); 
} 

過,沒有面包。

+0

是記錄以及嘗試擴大而不是SimpleOnPageChangeListener ViewPager.OnPageChangeListener如果您在使用onPageSelected很有趣。 – galvan

+0

Galvan,這就是SimpleOnPageChangeListener所做的事情。 – quantumpotato

回答

0

您需要爲SlidingTabLayout設置setOnPageChangeListener而不是viewpager。

pager.setOnPageChangeListener(new PageChangeListener());更改爲tabs.setOnPageChangeListener(new PageChangeListener());

SlidingTabLayout

/** 
    * Set the {@link ViewPager.OnPageChangeListener}. When using {@link SlidingTabLayout} you are 
    * required to set any {@link ViewPager.OnPageChangeListener} through this method. This is so 
    * that the layout can update it's scroll position correctly. 
    * 
    * @see ViewPager#setOnPageChangeListener(ViewPager.OnPageChangeListener) 
    */ 
    public void setOnPageChangeListener(ViewPager.OnPageChangeListener listener) { 
     mViewPagerPageChangeListener = listener; 
    }