更改选项卡后如何在片段中调用方法。 我尝试在片段中使用onPause(),但没有被调用。 我正在使用ViewPager。
谢谢!
答案 0 :(得分:0)
您可以覆盖setUserVisibleHint(boolean isVisibleToUser)
方法并将其用于此目的。更改选项卡并选择片段时,isVisibleToUser
将为true
。在以前可见的其他片段中,将使用false
调用此方法。
编辑:
setUserVisibleHint
将被多次调用。但是在那种情况下,您可以依靠getActivity()
不为空。即if (isVisibleToUser && getActivity() != null)
答案 1 :(得分:0)
通过以下方式将ViewPager.OnPageChangeListener
添加到ViewPager:
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
<method call>
}
}
因此,每当用户在ViewPager的页面上滑动时,您将在onPageSelected()方法中获得该页面位置的回调,然后可以在其中调用片段的方法
答案 2 :(得分:0)
您可以在此处使用界面。 在包含视图寻呼机的“活动”中定义您的界面
public interface MyInterface{
void callMethod();
}
初始化接口并像这样调用
viewPager.addOnPageChangeListener(new OnPageChangeListener() {
public void onPageScrollStateChanged(int state) {
}
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
}
public void onPageSelected(int position) {
myInterface.callMethod();
}
});
然后在您的片段中实现该方法,然后在回调中调用您的方法。
Myfragment extends Fragment implements MyInterface{
//
@Override
void callMethod(){
//call your method here
}
}