我需要我的 fragment 在 Activity fragment 时始终调用某个函数,所以我将它放在 onResume() 中,但它没有被调用。
fragment A
@Override
public void onResume(){
super.onResume();
Log.d("clear state", " "+clear);
if(clear == true)
{
restart();
clear = false;
calculate();
}
}
我使用带有 ViewPager 的 FragmentPagerAdapter 来切换 fragment
public class ScoutingFragSingle extends FragmentPagerAdapter{
@Override
public Fragment getItem(int index) {
Bundle data = new Bundle();
switch(index){
case 0:
TeamsFragment teamsFragment = new TeamsFragment();
data.putInt("current_page", index+1);
teamsFragment.setArguments(data);
return teamsFragment;
case 1:
data.putInt("current_page", index+1);
data.putInt("matchId", matchNum);
aFragment.setArguments(data);
return aFragment;
那么如何让 fragment 调用它们的 onResume()?
最佳答案
我前段时间遇到了同样的问题。
创建一个新接口(interface)并通过您的两个 Fragment
实现它:
public interface OnPageSelectedListener {
void onPageSelected();
}
在父 Activity 中实现 android.support.v4.view.ViewPager.OnPageChangeListener
并像这样调用 Fragment
方法:
@Override
public void onPageSelected(int i) {
OnPageSelectedListener fragment = (OnPageSelectedListener ((PlaceListPagerAdapter)pager.getAdapter()).getFragment(i);
fragment.onPageSelected();
}
PS:新接口(interface)的名称和方法有点乱,慎重或更改。
关于android - 使用 FragmentPagerAdapter 时不会调用 Fragment onResume(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15463116/