ViewPager 内に 3 つのページ (フラグメント) がありますが、そのうち 2 つのページにのみメニュー項目を表示したいと考えています。
指定されたコードは前回のSO回答動作しないようです:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser == true) { }
else if (isVisibleToUser == false) { }
}
Eclipse では、@Override は不要で、super は設定できないと表示されます。これはシステムによって呼び出されることはありません。呼び出されたとしても、現在どのページが表示されているのかをどのように判断すればよいのでしょうか。この点について、何かアドバイスをいただけないでしょうか。
ベストアンサー1
使用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.
}
});