我在布局的顶部制作了一个小吃店。但是,当它出现时,它向上滑动,而当它消失时,它向下滑动。我的愿望是使它从屏幕顶部显示并向下滑动,反之亦然。
CoordinatorLayout coordinatorLayout = findViewById(R.id.v_set_bgs);
snackbar = Snackbar.make(coordinatorLayout, R.string.changes, Snackbar.LENGTH_INDEFINITE);
View view = snackbar.getView();
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) view.getLayoutParams();
params.gravity = Gravity.START;
TextView snackbarText = view.findViewById(android.support.design.R.id.snackbar_text);
snackbarText.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
view.setLayoutParams(params);
view.setAlpha(0.75f);
if (snackbarShow && isAlready == 0 && AppSettings.isChanged) {
isAlready = 1;
snackbar.show();
}
所以。到目前为止,它的工作方式就像普通的小吃店(位于布局顶部)。我只是找不到任何方法来更改滑动方向。
答案 0 :(得分:2)
根据文档
小吃栏提供有关操作的轻量级反馈。他们展示了 移动设备屏幕底部的简短消息,左下方为 更大的设备。小吃栏出现在屏幕上所有其他元素的上方 一次只能显示一个。
您可以做的最好的选择是扩展Snackbar
类并覆盖show
方法或其他负责动画的方法
答案 1 :(得分:-1)
这使Snackbar出现在顶部,而不会出现奇怪的幻灯片。
科特林最好的简单解决方案:
val snackbar = Snackbar.make(view, string, Snackbar.LENGTH_LONG)
val layoutParams = LayoutParams(snackbar.view.layoutParams)
layoutParams.gravity = Gravity.TOP
snackbar.view.setPadding(0, 10, 0, 0)
snackbar.view.layoutParams = layoutParams
snackbar.animationMode = BaseTransientBottomBar.ANIMATION_MODE_FADE
snackbar.show()