How do I change an Android Snackbar's initial alignment from bottom to top?

apollow picture apollow · Jun 2, 2015 · Viewed 23.4k times · Source

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?

Answer

apollow picture apollow · Jun 2, 2015

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.