Когда я меняю фрагмент, я бы хотел сравнить новый с текущим. Если они одинаковы, их не нужно заменять.Android сравнить два фрагмента
Я попытался
public void displayFragment(Fragment fragment){
FragmentManager fm = getSupportFragmentManager();
Fragment currentFragment = fm.findFragmentById(R.id.content_frame);
if(!currentFragment.equals(fragment))
getSupportFragmentManager().beginTransaction().addToBackStack(null).replace(R.id.content_frame, fragment).commit();
}
, но он не работает, и фрагмент будет изменен, даже если новый один такой же
раствор? Благодаря
EDIT
Решение:
public void displayFragment(Fragment fragment){
FragmentManager fm = getSupportFragmentManager();
Fragment currentFragment = fm.findFragmentById(R.id.content_frame);
if(!fragment.getClass().toString().equals(currentFragment.getTag())){
getSupportFragmentManager()
.beginTransaction()
.addToBackStack(null)
.replace(R.id.content_frame, fragment, fragment.getClass().toString()) // add and tag the new fragment
.commit();
}
}
, если он находится в одном классе ?? – Piyush