确定ViewPager更改页面的时间

我在ViewPager中有三个页面(碎片),但是我只想显示其中两个页面的菜单项。

在以前的答案给出的代码似乎并不工作:

@Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser == true) { } else if (isVisibleToUser == false) { } } 

Eclipse说@Override是不需要的,超级不能设置。 它从来没有被系统所调用,即使是我将如何确定此刻显示哪个页面? 我可以在这里得到一些帮助吗?

使用ViewPager.onPageChangeListener

 viewPager.addOnPageChangeListener(new OnPageChangeListener() { public void onPageScrollStateChanged(int state) {} public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {} public void onPageSelected(int position) { // Check if this is the page you want. } }); 

ViewPager.setOnPageChangeListener现在已被弃用。 您现在需要使用ViewPager.addOnPageChangeListener

例如,

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

您也可以使用ViewPager.SimpleOnPageChangeListener而不是ViewPager.OnPageChangeListener并仅覆盖您要使用的方法。

 viewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { // optional @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } // optional @Override public void onPageSelected(int position) { } // optional @Override public void onPageScrollStateChanged(int state) { } }); 

希望这个帮助:)

编辑:根据Android API, setOnPageChangeListener (ViewPager.OnPageChangeListener listener)已被弃用。 请检查以下url: – Android ViewPager API