SnackBar сверху. Это возможно?
Я хотел представить анимацию SnackBar
сверху, вместо обычного поведения, отображающего SnackBar
снизу. Это легко взломать?
Ответы
Ответ 1
Нет, это невозможно. В документации говорится, что
Они показывают краткое сообщение внизу экрана на мобильном телефоне и внизу слева на больших устройствах. Снэк-панели отображаются над всеми другими элементами на экране, и одновременно может отображаться только один элемент.
Вы можете использовать третью библиотеку, например, Crouton
Ответ 2
можно.
проверьте эту библиотеку, сделанную мной https://github.com/AndreiD/TSnackBar
в основном вы добавляете 2 новые анимации для перемещения сверху и изменяете гравитацию макета. Это все:)
Позднее Редактировать: там происходит ошибка.... если кто-то хочет потратить некоторое время на его исправление, мы все это оценим:)
Ответ 3
CoordinatorLayout coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinatorLayout);
Snackbar snackbar = Snackbar.make(coordinatorLayout, "Text", Snackbar.LENGTH_LONG);
View view = snackbar.getView();
CoordinatorLayout.LayoutParams params =(CoordinatorLayout.LayoutParams)view.getLayoutParams();
params.gravity = Gravity.TOP;
view.setLayoutParams(params);
snackbar.show();
Ответ 4
РЕДАКТИРОВАТЬ: Это решение визуализирует Snackbar сверху, но анимация снизу.
Это возможно, по крайней мере, с библиотекой Android Material и небольшим фокусом. Вы можете привязать "снэк-бар" к представлению, которое отображается на верхней позиции, например так: "Activity_main.xml":
<FrameLayout>
<!-- rest of the components here -->
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/top_coordinator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"/>
</FrameLayout>