android - 使用 FragmentPagerAdapter 时不会调用 Fragment onResume()

标签 android android-viewpager fragment onresume

我需要我的 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/

相关文章:

android - 如何将 Floating Action Button 带出应用程序并使其作为可见、可移动和可点击的后台服务运行?

android - 如何将我的布局拆分为 3 个不同的滑动 View

java - “海拔”不在 ViewPager 中显示阴影

android - getChildFragmentManager() 和 containerId

java - 如何通过容器 View 重新显示和恢复以前添加的 fragment

android - 如何通过Android应用中的链接重定向到youtube应用?

android - Activity 拒绝开始

java - 不幸的是,(应用程序名称)已停止 - Android 开发错误

带有捕捉功能的 Android 水平文本轮播

java - 使用 fragment 更改 Honeycomb 上的布局