如何将 TextView 移动到屏幕底部直到它消失?
How to move a TextView to the bottom of the screen till it's gone?
我需要通过执行像 xml 中的翻译动画这样的动画,将 TextView 滚动到底部直到它消失。我试图创建一个动画文件并在 xml 中使用了平移属性,但它将执行我在 xml 中设置的特定距离。我不知道如何让它翻译到底部,直到它消失并从屏幕上消失。还有一件事是,我还想要一个类似监听器的东西,当 TextView 消失并在动画结束时从屏幕上消失时,它会执行一些操作。
如有任何建议,我们将不胜感激。谢谢。
您可以计算您希望视图移动的距离,但如果您不想精确,您可以直接使用屏幕高度:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int screenHeight = size.y;
然后根据需要为视图设置动画,但最后添加一个侦听器以执行您想要的操作:
textView.animate().translationY(screenHeight).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
textView.setVisibility(View.GONE);
}
});
您仍然需要在侦听器中最后将视图可见性设置为 GONE,以确保您不再看到它。
您也可以尝试使用 getBottom()
作为距离。
我需要通过执行像 xml 中的翻译动画这样的动画,将 TextView 滚动到底部直到它消失。我试图创建一个动画文件并在 xml 中使用了平移属性,但它将执行我在 xml 中设置的特定距离。我不知道如何让它翻译到底部,直到它消失并从屏幕上消失。还有一件事是,我还想要一个类似监听器的东西,当 TextView 消失并在动画结束时从屏幕上消失时,它会执行一些操作。
如有任何建议,我们将不胜感激。谢谢。
您可以计算您希望视图移动的距离,但如果您不想精确,您可以直接使用屏幕高度:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int screenHeight = size.y;
然后根据需要为视图设置动画,但最后添加一个侦听器以执行您想要的操作:
textView.animate().translationY(screenHeight).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
textView.setVisibility(View.GONE);
}
});
您仍然需要在侦听器中最后将视图可见性设置为 GONE,以确保您不再看到它。
您也可以尝试使用 getBottom()
作为距离。