Android SimpleOnPageListener未触发
我有这门课:Android SimpleOnPageListener未触发,android,android-viewpager,Android,Android Viewpager,我有这门课: 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.SimpleOnPageChangeListen
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());
我能够在选项卡和片段加载之间切换
然而,我并没有看到我的吐司,我在PageChangeListener中设置了一个断点,它并没有被触发
为什么这没有被触发?我希望在页面更改时收到通知
我已经试过了
@Override
public void onPageSelected(int position) {
Toast.makeText(PocketApplication.getContext(), "changed" + position, Toast.LENGTH_LONG).show();
}
也不要吐司。您需要为
滑动布局设置而不是viewpager设置setOnPageChangeListener
更改pager.setOnPageChangeListener(新的PageChangeListener())代码>到选项卡。setOnPageChangeListener(新的PageChangeListener())代码>
这在slidengtablayout
/**
* 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;
}
您需要为slidentablayout
而不是viewpager设置setOnPageChangeListener
更改pager.setOnPageChangeListener(新的PageChangeListener())代码>到选项卡。setOnPageChangeListener(新的PageChangeListener())代码>
这在slidengtablayout
/**
* 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;
}
如果您对onPageSelected感兴趣,请尝试扩展ViewPager.OnPageChangeListener而不是SimpleOnPageChangeListener。Galvan,SimpleOnPageChangeListener就是这么做的。如果您对onPageSelected.Galvan感兴趣,请尝试扩展ViewPager.OnPageChangeListener而不是SimpleOnPageChangeListener,SimpleOnPageChangeListener就是这么做的。