制作"slide from bottom"按钮(类似于snackbar)(Android)
Making "slide from bottom" button (similar to snackbar) (Android)
有些事情我想做但不知道怎么做...那将是一个从屏幕底部滑动到特定位置的按钮,由某些东西触发。与 snackbar 的显示方式非常相似,不同之处在于它停留在原地而不是消失并且具有 属性 的 "clickable"。这不是一个可从底部拖动的面板,而是一个由某些东西自动触发的滑动面板。
我怎样才能做到这一点?
听起来像是沿 y
轴的相当简单的动画,起始值与屏幕高度匹配(这样它就在屏幕外呈现),无论最终值是多少。以下代码来自记忆,但应该可以。
要抓取屏幕高度:
int getScreenHeight() {
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
return displaymetrics.heightPixels;
}
并为视图设置动画(在本例中为屏幕总高度的 80%):
void animateOnScreen(View view) {
final int screenHeight = getScreenHeight();
ObjectAnimator animator = ObjectAnimator.ofFloat(view, "y", screenHeight, (screenHeight * 0.8F));
animator.setInterpolator(new DecelerateInterpolator());
animator.start();
}
将视图向下滑动一段距离:
view.animate().translationY(distance);
稍后您可以像这样将视图滑回其原始位置:
view.animate().translationY(0);
有些事情我想做但不知道怎么做...那将是一个从屏幕底部滑动到特定位置的按钮,由某些东西触发。与 snackbar 的显示方式非常相似,不同之处在于它停留在原地而不是消失并且具有 属性 的 "clickable"。这不是一个可从底部拖动的面板,而是一个由某些东西自动触发的滑动面板。
我怎样才能做到这一点?
听起来像是沿 y
轴的相当简单的动画,起始值与屏幕高度匹配(这样它就在屏幕外呈现),无论最终值是多少。以下代码来自记忆,但应该可以。
要抓取屏幕高度:
int getScreenHeight() {
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
return displaymetrics.heightPixels;
}
并为视图设置动画(在本例中为屏幕总高度的 80%):
void animateOnScreen(View view) {
final int screenHeight = getScreenHeight();
ObjectAnimator animator = ObjectAnimator.ofFloat(view, "y", screenHeight, (screenHeight * 0.8F));
animator.setInterpolator(new DecelerateInterpolator());
animator.start();
}
将视图向下滑动一段距离:
view.animate().translationY(distance);
稍后您可以像这样将视图滑回其原始位置:
view.animate().translationY(0);