Comportamiento personalizado de BottomSheet: encima de BottomBar
Quiero mostrarBottomSheet
por encima de miBottomBar
. Entonces tengo que escribir personalizadoBottomSheet
behavior
eso pondrá miBottomSheet
por encima de miBottomBar
- elBottomBar
tieneshy behavior
(escondiéndose durante el desplazamiento).
Hay lo que intenté 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;
}
}
Hasta ahora, esta solución no está funcionando completamente. Puedo poner elBottomSheet
encimaBottomBar
con elsetY()
método. Pero la expansión y el colapso está funcionando mal. Así que traté de modificar la parte inferior de laBottomSheet
con métodosetBottom()
Pero tampoco está funcionando. Tal vez sea por unidades incorrectas (px vs dp).
¿Alguien puede ayudarme a arreglar mi código o al menos darme una pista de lo que estoy haciendo mal o lo que me falta?