I have a FirstFragment with viewPager (ViewPager contains several TestFragments). FirstFragment also contains a button. I would like to change UI of current TestFragment when I click the button.
Unfortunately when I call getView() or try to access the stored property (View rootView). They both return null.
How should I approach this?
class FirstFragment extends Fragment{
    private ViewPager mViewPager;
    private TestAdapter testAdapter;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.first_layout, container, false);
        testAdapter = new TestAdapter(getFragmentManager());
        mViewPager = (ViewPager) view.findViewById(R.id.pager);
        mViewPager.setAdapter(testAdapter);
        mViewPager.setAdapter(questionPagerAdapter);
        view.findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ((TestFragment)testAdapter.getItem(mViewPager.getCurrentItem())).doSomethingOnFragmentUI();
            }
        });
        return view;
    }
}
class TestFragment extends Fragment{
    private View rootView;
    @Override
    public View onCreateView(LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.my_layout, container, false);
        return rootView;
    }
    public void doSomethingOnFragmentUI(){
        if(rootView != null){
            //rootView is always null at this point
        }
    }
}
Please note that viewPager creates a new fragment everyting .getItem() is called. I do not cache the fragments. This problem occured when I stopped "caching" the fragments in HashMap (FirstFragment was keeping the reference).
 
     
    