0

HERE IS THE VIDEO: https://www.youtube.com/watch?v=eush2bY0XlQ&feature=youtu.be&hd=1

So here is the plot :

1) I have a navigation drawer.

2) By Clicking on one of the list item a tab layout (fragment) is inflated .

3) So I get a tab layout (with 6 tabs) working besides navigation drawer i.e navigation drawer and tab_layout can be used simultaneously.

4) Content of every tab is a Different fragement.

Problem :

When I launch the application and click the list-item with the tab fragment the content of the tab_fragment is inflated normally.

But when i click it again all the content of the first and second tab dissappear.

And reappear only when when i swipe till the third tab and swipe back again .

In simple words ,

On Calling the static new Instance method of Tab_Fragment for the first time is works fine .

On Calling it again the content of the first and second tab disappear and reappear

only when I swipe till the 3rd tab and come back.

I know it sounds weird.

Code:

My Tab_Fragment To Create it I call its New Instance From MainActivity.

public class Tab_Activity extends Fragment {
private final Handler handler = new Handler();
public PagerSlidingTabStrip tabs;
private ViewPager pager;
private MyPagerAdapter adapter;
public final static String TAG = Tab_Activity.class.getSimpleName();

public Tab_Activity() {
    // TODO Auto-generated constructor stub
}

public static Tab_Activity newInstance() {
    return new Tab_Activity();
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
     setRetainInstance(true);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    return inflater.inflate(R.layout.tab_layout, container, false);


}

@Override
public void onViewCreated(View v, Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onViewCreated(v, savedInstanceState);
    tabs = (PagerSlidingTabStrip) v.findViewById(R.id.tabs);
    pager = (ViewPager) v.findViewById(R.id.pager);
    adapter = new MyPagerAdapter(getActivity().getSupportFragmentManager());
    pager.setAdapter(adapter);
    final int pageMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, getResources()
            .getDisplayMetrics());
    pager.setPageMargin(pageMargin);
    tabs.setViewPager(pager);
    tabs.setIndicatorColorResource(R.color.grey);
    tabs.setTextColorResource(R.color.black);

}

public class MyPagerAdapter extends FragmentPagerAdapter {

    private final String[] TITLES = { "  ELECTRONICS  ", "          IT        ", "    COMPUTER    ","     EXTC     ", "INSTRUMENTATION","       MCA      "  };

    public MyPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return TITLES[position];
    }

    @Override
    public int getCount() {
        return TITLES.length;
    }

    @Override
    public Fragment getItem(int position) {
        return Courses.newInstance(position);

    }

}



}

The Courses Fragment :

public class Courses extends Fragment {
LinearLayout ll ;
private static final String ARG_POSITION = "position";
public static PagerSlidingTabStrip tab ;
private int position;
public static Courses newInstance(int position) {

    Courses f = new Courses();
    Bundle b = new Bundle();
    b.putInt(ARG_POSITION, position);
    f.setArguments(b);
    return f;
}

@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    position = getArguments().getInt(ARG_POSITION);
    setRetainInstance(true);

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.dept_main,container,false);
}

@Override
public void onViewCreated(View v, Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onViewCreated(v, savedInstanceState);
    // generate ID's :
    TextView h_name = (TextView) v.findViewById(R.id.tv_dept_name);
    TextView f_info = (TextView) v.findViewById(R.id.tv_dept_info);
    TextView h_vision = (TextView) v.findViewById(R.id.header_vision);
    TextView f_vision = (TextView) v.findViewById(R.id.footer_vision);
    TextView h_mission = (TextView) v.findViewById(R.id.header_mission);
    TextView f_mission = (TextView) v.findViewById(R.id.footer_mission);
    TextView h_eoe = (TextView) v.findViewById(R.id.header_EOE);
    TextView f_eoe = (TextView) v.findViewById(R.id.footer_EOE);
    TextView h_intake = (TextView) v.findViewById(R.id.header_intake);
    TextView f_intake = (TextView) v.findViewById(R.id.footer_intake);
    h_intake.setText(R.string.h_intake);
    h_mission.setText(R.string.h_mission);
    h_vision.setText(R.string.h_vision);
    h_eoe.setText(R.string.h_eoe);



    switch(position){
    case 0 :
        //Electronics 
        h_name.setText("Electronics");
        f_info.setText(R.string.ug_course);
        f_vision.setText(R.string.v_etrx);
        f_mission.setText(R.string.m_etrx);
        f_eoe.setText("1984");
        f_intake.setText(R.string.intake_etrx);
        break ;
    case 1 :
        h_name.setText("Information Technology");
        f_info.setText(R.string.ug_course);
        f_vision.setText(R.string.v_it);
        f_mission.setText(R.string.m_it);
        f_eoe.setText("1984");
        f_intake.setText(R.string.intake_it);
        break ; 
    case 2 :
        h_name.setText("Computer Science");
        f_info.setText(R.string.ug_course);
        f_vision.setText(R.string.v_coms);
        f_mission.setText(R.string.m_coms);
        f_eoe.setText("1984");
        f_intake.setText(R.string.intake_coms);
        break ;
    case 3 :
        h_name.setText("Electronics And Telecommunication");
        f_info.setText(R.string.ug_course);
        f_vision.setText(R.string.v_extc);
        f_mission.setText(R.string.m_extc);
        f_eoe.setText("1984");
        f_intake.setText(R.string.intake_extc);
        break ;
    case 4 :
        h_name.setText("Instrumentation");
        f_info.setText(R.string.ug_course);
        f_vision.setText(R.string.v_it);
        f_mission.setText(R.string.m_it);
        f_eoe.setText("1984");
        f_intake.setText(R.string.intake_it);
        break ;
    case 5 :
        h_name.setText("Master of Computer Applications");
        f_info.setText("Post Graduation Course.(PG)");
        f_vision.setText(R.string.v_mca);
        f_mission.setText(R.string.m_mca);
        f_eoe.setText("1984");
        f_intake.setText(R.string.intake_mca);
        break;
    }



}

}

(Comment for any clarifications ! )

testuserx
  • 226
  • 2
  • 13

1 Answers1

0

Found My Answer ==> https://stackoverflow.com/a/12582529/3475933 Only Changed FragmenPagerAdapter to FragmentStatePagerAdapter and eveything worked fine. Hope it helps .!

Community
  • 1
  • 1
testuserx
  • 226
  • 2
  • 13