Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SimpleOnPageListener未触发_Android_Android Viewpager - Fatal编程技术网

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就是这么做的。