Comportamento personalizado do BottomSheet - acima do BottomBar
Eu quero mostrarBottomSheet
acima do meuBottomBar
. Então eu tenho que escrever personalizadoBottomSheet
behavior
isso vai colocar meuBottomSheet
acima do meuBottomBar
- aBottomBar
temshy behavior
(ocultando durante a rolagem).
Existe o que eu tentei implementar:
public class BottomSheetBehavior<T extends View> extends android.support.design.widget.BottomSheetBehavior<T> {
public BottomSheetBehavior(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean layoutDependsOn(CoordinatorLayout parent, View child, View dependency) {
return dependency instanceof BottomBar;
}
@Override
public boolean onDependentViewChanged(CoordinatorLayout parent, View child, View dependency) {
// This will set the Y of my bottom sheet above the bottom bar every time BottomBar changes its position
child.setY(dependency.getY() - child.getHeight());
// But I also have to modify the bottom position of my BottomSheet
// so the BottomSheet knows when its collapsed in its final bottom position.
child.setBottom((int) dependency.getY() - dependency.getHeight());
return false;
}
}
Até agora, esta solução não está funcionando totalmente. Eu posso colocar oBottomSheet
acimaBottomBar
com osetY()
método. Mas a expansão e o colapso estão funcionando errado. Então eu tentei modificar a parte inferior doBottomSheet
com métodosetBottom()
Mas também não está funcionando. Talvez seja por causa de unidades erradas (px vs dp).
Alguém pode me ajudar a corrigir meu código ou pelo menos me dar uma dica do que exatamente estou fazendo de errado ou do que estou perdendo?