Possible duplicates with
java.lang.IllegalArgumentException when switching fragmentsBut the scenario of the problem is different this Link.
Here is my code
public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
bindWidgetsWithAnEvent();
}
private void bindWidgetsWithAnEvent() {
tabsLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(final TabLayout.Tab tab) {
setCurrentTabFragment(tab.getPosition());
Log.d(TAG, "Position " + tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
Log.d(TAG, String.valueOf(tab.getPosition()));
}
});
}
public void setCurrentTabFragment(int tabPosition) {
switch (tabPosition) {
case 0:
replaceFragment(fragmentName);
break;
case 1:
replaceFragment(fragmentName);
break;
default:
break;
}
}
public void replaceFragment(Fragment fragment) {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.flContent, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
}
@Override
protected void onStart() {
super.onStart();
}
}
The below is the stacktrace caught by Google console, and still didn't get the solution after searching. Please let me know if someone has better solution or have the same problem.
java.lang.IllegalStateException:
at android.support.v4.app.FragmentManagerImpl.checkStateLoss (FragmentManager.java:1842)
at android.support.v4.app.FragmentManagerImpl.enqueueAction (FragmentManager.java:1860)
at android.support.v4.app.BackStackRecord.commitInternal (BackStackRecord.java:650)
at android.support.v4.app.BackStackRecord.commit (BackStackRecord.java:609)
at com.safarifone.waafi.ui.activities.MainActivity.replaceFragment (MainActivity.java:354)
at com.safarifone.waafi.ui.activities.MainActivity.setCurrentTabFragment (MainActivity.java:336)
at com.safarifone.waafi.ui.activities.MainActivity$3.onTabSelected (MainActivity.java:303)
at android.support.design.widget.TabLayout.dispatchTabSelected (TabLayout.java:1164)
at android.support.design.widget.TabLayout.selectTab (TabLayout.java:1157)
at android.support.design.widget.TabLayout.selectTab (TabLayout.java:1127)
at android.support.design.widget.TabLayout$Tab.select (TabLayout.java:1426)
at android.support.design.widget.TabLayout$TabView.performClick (TabLayout.java:1536)
at android.view.View$PerformClick.run (View.java:20300)
at android.os.Handler.handleCallback (Handler.java:815)
at android.os.Handler.dispatchMessage (Handler.java:104)
at android.os.Looper.loop (Looper.java:210)
at android.app.ActivityThread.main (ActivityThread.java:5833)
at java.lang.reflect.Method.invoke (Native Method)
at java.lang.reflect.Method.invoke (Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1113)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:879)
Help will be appreciated