簡體   English   中英

以一種不錯的方式使用 ConstraintLayout 時,如何在頂部的 Android 中顯示 Snackbar

[英]How to show a Snackbar in Android on the top when using ConstraintLayout in a nice way

我在 Android 中使用 ConstraintLayout,我想在屏幕頂部顯示一條 Snackbar 消息。 我在 Stackoverflow 上發現了這個問題: 如何在屏幕頂部顯示 Snackbar

點贊最多的答案很糟糕,因為它看起來很糟糕,因為您可以看到 Snackbar 的蜜蜂動畫到頂部:

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();

第二個答案假設您使用的是我不使用的 CorrdinatorLayout

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();

你知道我怎樣才能以一種很好的方式在頂部的 ConstraintLayout 中顯示 SnackBar(這意味着它只會在屏幕頂部彈出而不被動畫到頂部)?

您可以使用第一段代碼並執行以下操作:

添加此行以解決 animation 問題:

snackbar.setAnimationMode(BaseTransientBottomBar.ANIMATION_MODE_FADE);

如果這不起作用,試試這個:

snackbar.setAnchorView(*mention viewId above whom you want to show SnackBar*)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM