【问题标题】:Can't communicate with fragments in ViewPager after orientation change方向更改后无法与 ViewPager 中的片段通信
【发布时间】:2015-06-25 17:12:18
【问题描述】:

我有一个选项卡,其中包含一个视图寻呼机,其中包含 5 个片段。

当调用 onPageSelected 时,我告诉当前片段使用

进行动画处理
((ItemFragment) pagerAdapter.getItem(position)).animateUp();

在片段内部

public void animateUp(){
     if(linearLayout != null){
          linearLayout.animate().translationYBy(-75));
    } 
}

在我旋转设备之前,一切似乎都运行良好。显示了片段,我可以移动它们,但 animateUp() 方法没有做任何事情。 viewpager 似乎没有对正在显示的片段的引用。

编辑:onCreate 为空,这里是 onCreateView

 public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_explore_tab, container, false);
    pager = (MultiViewPager)rootView.findViewById(R.id.pager);

    List<Fragment> fragmentsList = new ArrayList<>();
    for(int i = 0; i < header.length; i++){
        ItemFragment fragment = new ItemFragment();
        Bundle bundle = new Bundle();
        bundle.putInt(ItemFragment.IMAGE_KEY, header[i]);
        fragment.setArguments(bundle);
        fragmentsList.add(fragment);
    }

    pager.addOnPageChangeListener(new OnPageChangeListener() {

        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }

        @Override
        public void onPageSelected(int position) {
            ((ItemFragment) pagerAdapter.getItem(position)).animateUp();
        }

        @Override
        public void onPageScrollStateChanged(int state) {
        }
    });

    pagerAdapter = new BaseFragmentPagerAdapter(getChildFragmentManager(), fragmentsList);
    pager.setAdapter(pagerAdapter);

    return rootView;
}

【问题讨论】:

  • 你能把onCreate的代码贴出来吗?

标签: android android-fragments android-activity android-viewpager android-lifecycle


【解决方案1】:
if(linearLayout != null){ *your listener change to null when you rotate device*
          linearLayout.animate().translationYBy(-75)); }

您必须再次订阅监听器。尝试在 onResume 中执行此操作

【讨论】:

    猜你喜欢
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多