如何在使用ConstraintLayout时在顶部显示Android中的Snackbar



我在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吗(这意味着它只会弹出在屏幕顶部,而不会被动画化到顶部(?

您可以使用第一段代码并执行以下操作:

添加此行以解决动画问题:

snackbar.setAnimationMode(BaseTransientBottomBar.ANIMATION_MODE_FADE);

如果这不起作用,试试这个:

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

相关内容

  • 没有找到相关文章

最新更新