我在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*)