java - 如何平移 View ,但保持其原始起始位置

标签 java android view android-animation

我正在对 View 进行动画处理,以便在键盘出现时隐藏底部导航栏。

我的问题是,我可以平移底部导航栏,并且主“消息区域”可以跟随它,但在“消息区域”的顶部形成一个间隙。有没有办法进行翻译,但保持“消息区域”的顶部与操作栏对齐?

以下是动画和正在形成的间隙的示例: enter image description here

我的动画代码如下:

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/

相关文章:

java - 使用 viewpager.setCurrentItem(position) 传递一些数据

java - CMIS Alfresco 复制文档的所有版本

java - 尽管更改了加密文本,仍能够解密 Java 中的加密文本

Android GridLayout - 如何增加列或行之间的间距?

Android:如何使用矩阵动画移动 View ?

ios - 快速自定义 UIView

java - 设置分片orientdb

Java 加载自定义字体文件 (.ttf)

java - 每次按键时更新 TextView

android - 从android中的 View 中删除监听器