The recent android library came out just a few days ago, but I would like to have the SnackBar
appear on top of the screen, preferably within a RelativeLayout as it's parent view.
How does one change the SnackBar
's initial alignment which I presume to be layout_alignParentBottom
to layout_alignParentTop
?
Snackbars should be placed at the bottom of a UI, in front of app content.
You can do this by placing a container inside the snackbar. Since snackbar can take any widget and you can change its background color to transparent, you can use a container with custom padding and borders to give an illusion of positioning.
It is possible to make the snackbar appear on top of the screen using this:
Snackbar snack = Snackbar.make(parentLayout, str, Snackbar.LENGTH_LONG);
View view = snack.getView();
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams)view.getLayoutParams();
params.gravity = Gravity.TOP;
view.setLayoutParams(params);
snack.show()
Note: The animation for the snackbar begins from the bottom and surges up to the top of the screen as expected because it was intended to be in the bottom as per ianhanniballake's answer.
For notifications surging from the top, it would probably better off getting a Custom banner instead.
No, per the material design spec for Snackbars:
Snackbars provide lightweight feedback about an operation by showing a brief message at the bottom of the screen.
As the Design library seeks to implement the material design specs, it is not possible to position the Snackbar in any position other than the bottom of the screen (or containing CoordinatorLayout
).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With