3

I have 2 tabs in my app, using tablistner and I'm facing an issue when I'm navigating in a very specific situation to other tab and then navigating back to the first tab.

It happens after i load a fragment called "setFrom" from another fragment:

public void LoadSetFrom ()
{
    final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    SherlockFragment setFrag = new setFrom();
    ft.replace(R.id.main_layout, setFrag, "setfrom"); 
    ft.commit();
}

This "setFrom" fragment is one of my 2 tabs, after that I'm navigatin to the second tab and when I'm going back to "setFrom" the tabs navigation still appears but the fragment is totally blank.

I'm using TabListener that way:

public class TabListener<T extends SherlockFragment> implements com.actionbarsherlock.app.ActionBar.TabListener
{
      private SherlockFragment mFragment;
      private setFrom fromFragment;
      private final SherlockFragmentActivity mActivity;
      private final String mTag;
      private final Class<T> mClass;

    public TabListener(SherlockFragmentActivity activity, String tag, Class<T> clz) {
        mActivity = activity;
        mTag = tag;
        mClass = clz;
      }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        SherlockFragment preInitializedFragment = (SherlockFragment)mActivity.getSupportFragmentManager().findFragmentByTag(mTag);
        if (preInitializedFragment == null) {
                mFragment = (SherlockFragment) SherlockFragment.instantiate(mActivity, mClass.getName());
                ft.add(R.id.main_layout, mFragment, mTag);
            }
        else {
                ft.attach(preInitializedFragment);
       }
    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        if (mFragment != null)
              ft.detach(mFragment);
    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub

    }

}

After checking onTabSelected, "setFrom" is not null,it attached to the right fragment and it goes to ft.attach(preInitializedFragment) which is fine.

My question is why after the attach to the right fragment the view is still blank?

Juvi
  • 1,078
  • 1
  • 19
  • 38

1 Answers1

0

I was facing the same problem Solved it by adding setRetainInstance(true); to my Fragment's onCreate

Neo
  • 1,359
  • 14
  • 34
  • 2
    Well I tried to put this line at oncreateview, onviewcreater and onattch, and it doesnt seem to solve the issue... – Juvi Jan 31 '14 at 14:08