Я хочу изменить положение кнопки плавающего действия в соответствии с появлением и исчезновением некоторых закусочных. Это нормально, когда закусочные перестают работать сами по себе, но это не работает с закусочными, которые закрываются вручную. Я хочу установить позицию в onDependentViewRemoved в последнем случае, однако из-за времени отключения закусочных это вызывает некоторые проблемы, поскольку вызываются как onDependentViewChanged, так и onDependentViewRemoved. Поэтому я хочу каким-то образом определить в onDependentViewChanged или onDependentViewRemoved, была ли данная закусочная закрыта или истекло время ожидания. Настройка представления панели закусок на плавающую кнопку действия невозможна, так как эти панели закусок могут отображаться в нескольких фрагментах, и не все из них имеют плавающие кнопки действий. Интересно, знает ли кто-нибудь, возможно ли такое обнаружение события/состояния в поведении плавающей кнопки действия?
Вот что у меня сейчас:
@Override
public boolean onDependentViewChanged(CoordinatorLayout parent, View child, View dependency) {
if ((child instanceof FloatingActionMenu ||
child instanceof FloatingActionButton) &&
(dependency instanceof Snackbar.SnackbarLayout ||
dependency instanceof AHBottomNavigation)) {
this.updateTranslation(parent, child, dependency);
}
return false;
}
@Override
public void onDependentViewRemoved(CoordinatorLayout parent, View child, View dependency) {
if ((child instanceof FloatingActionMenu ||
child instanceof FloatingActionButton) &&
dependency instanceof Snackbar.SnackbarLayout) {
this.updateTranslation(parent, child, dependency);
}
}
Однако, как я уже сказал, позиции перепутаны или даже иногда приложение падает, когда вызываются оба метода (когда время ожидания закусочной истекает). Кто-нибудь может мне помочь?