У меня есть 3 фрагмента: A, B, C
и ActionItem
под названием Filters
. Эти Filters
должны быть видны только тогда, когда отображается фрагмент A
.ActionItem появляется при изменении ориентации
Так я прячусь Filters
когда B
или C
подставляется над A
и восстановить их обратно, когда A
заменяется обратно.
Это прекрасно работает, если я не изменю ориентацию экрана. Filters
стать видно после этого.
Что есть я пробовал:
в деятельности, которая выступает за Фрагменты навигации переопределение проверить видимый Fragment
и если его B
или C
я hideActionFilters()
:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
....//other logic
//check if backStack empty
if (getSupportFragmentManager().getBackStackEntryCount() != 0) {
//check top fragment by position and name in backstack
//LessonsFragment - B; SingleLessonFragment - C
if (getTopFragment().getClass().getName().equals(LessonsFragment.class.getName()) ||
getTopFragment().getClass().getName().equals(SingleLessonFragment.class.getName())) {
hideActionFilterItem();
}
}
Это не работает , Метод hideActionItem()
:
private void hideActionFilterItem() {
View menuItemView = findViewById(R.id.action_filters);
if (menuItemView != null) {
menuItemView.setVisibility(View.GONE);
}
}
Пробовал отладки, он работает hideActionItem()
но ActionItem
все еще видны.
Также я пытался спрятаться в onPause()
; в onConfogChanged()
фрагмента B
и C
.
Возможно, у кого-то была такая проблема. Пожалуйста помоги.
P.S. Скажите, пожалуйста, нужен ли еще какой-то код. Спасибо