Пробовал так:
private Fragment currentFragment;
@Subscribe
public void changeFragment(EChangeFragment event){
Fragment fragment = event.getFragment();
if(fragment.equals(currentFragment)) {
Log.d("mytag", "MainPresenter.changeFragment() already that fragment");
return;
}
currentFragment = fragment;
fragmentTransaction = fragmentManager.beginTransaction();
if(event.isAddToBackStack()) fragmentTransaction.addToBackStack(null);
fragmentTransaction.setTransition(TRANSIT_FRAGMENT_FADE);
setNewFragment(fragment);
hideNavigationMenu(event.isHideMenu());
fragmentTransaction.commit();
}
Но это не помогает! В if
мы никогда не заходим.
Пробовал и такой способ:
@Subscribe
public void changeFragment(EChangeFragment event){
Fragment fragment = event.getFragment();
if(fragment.equals(getCurrentFragment())) {
Log.d("mytag", "MainPresenter.changeFragment() already that fragment");
return;
}
fragmentTransaction = fragmentManager.beginTransaction();
if(event.isAddToBackStack()) fragmentTransaction.addToBackStack(null);
fragmentTransaction.setTransition(TRANSIT_FRAGMENT_FADE);
setNewFragment(fragment);
hideNavigationMenu(event.isHideMenu());
fragmentTransaction.commit();
}
private Fragment getCurrentFragment(){
return fragmentManager.findFragmentById(R.id.content);
}
Тоже не помогает. Мне надо проверять текущий фрагмент на экране, чтобы при клике на меню открывался другой фрагмент, однако если новый же фрагмент- тот, который на экране, ничего не делать
UPD:
Как отправляется эвент с изменением фрагмента:
private void openIntroducingFragment(){
getSupportActionBar().hide();
setContentFullscreen();
EventBus.getDefault().post(new EChangeFragment(new IntroducingFragment(), DONT_ADD_TO_BACKSTACK,
HIDE_TOOLBAR, HIDE_MENU));
}
EChangeEvent.java
public EChangeFragment(Fragment fragment, boolean addToBackStack, boolean deprecated, boolean hideMenu){
this.fragment = fragment;
this.addToBackStack = addToBackStack;
this.hideMenu = hideMenu;
}
На экране может находиться несколько фрагментов, поэтому нативного метода узнать фрагмент существует несколько:
Таким образом, вы сами должны обеспокоиться о том, чтобы хранить "актуальный" фрагмент отдельно
Вообще, стоит подумать об архитектуре, раз такое приходится делать:)
Виртуальный выделенный сервер (VDS) становится отличным выбором
На выделенном сервере установил tomcatЗахожу по адресу IP или по домену (установил в server
В теле main запускаю цикл (на 50 итераций), в теле которого вывод текста на экран и вброс команд в потокПри компиляции выводит сперва 50 строк текста...