确定ViewPager更改页面的时间
我在ViewPager中有三个页面(碎片),但是我只想显示其中两个页面的菜单项。
在以前的答案给出的代码似乎并不工作:
@Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser == true) { } else if (isVisibleToUser == false) { } }
Eclipse说@Override是不需要的,超级不能设置。 它从来没有被系统所调用,即使是我将如何确定此刻显示哪个页面? 我可以在这里得到一些帮助吗?
使用ViewPager.onPageChangeListener
:
viewPager.setOnPageChangeListener(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