我正在对 View 进行动画处理,以便在键盘出现时隐藏底部导航栏。
我的问题是,我可以平移底部导航栏,并且主“消息区域”可以跟随它,但在“消息区域”的顶部形成一个间隙。有没有办法进行翻译,但保持“消息区域”的顶部与操作栏对齐?
我的动画代码如下:
if (lowerNavigationBar.getVisibility() == View.VISIBLE) {
lowerNavigationBar.animate()
.translationY(lowerNavigationBar.getHeight()).setDuration(1000).start();
viewPager.animate()
.translationY(lowerNavigationBar.getHeight()).setDuration(1000).start();
lowerNavigationBar.setVisibility(View.INVISIBLE);
}
else{
lowerNavigationBar.setVisibility(View.VISIBLE);
lowerNavigationBar.animate()
.translationY(0).setDuration(1000).start();
viewPager.animate()
.translationY(0).setDuration(1000).start();
}
最佳答案
我最终测试了两件事,第一件事来自 this stack overflow answer它调整了布局的实际高度,这确实有效,但并不像我希望的那么平滑。
第二个是this library它使用 ValueAnimators 并提供更流畅的动画以及更多功能。我最终坚持使用这个库,因为它在视觉上提供了更好的结果并且易于定制。
关于java - 如何平移 View ,但保持其原始起始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45843463/