【问题标题】:How to translate a view, but keep it's original starting position如何翻译视图,但保持其原始起始位置
【发布时间】:2018-02-01 06:21:09
【问题描述】:

我正在为视图设置动画,以便在键盘出现时隐藏底部导航栏。

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

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

我的动画代码如下:

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();

}

【问题讨论】:

    标签: java android view android-animation


    【解决方案1】:

    我最终测试了两件事,第一件事来自this stack overflow answer,它调整了布局的实际高度,确实有效,但没有我想要的那么平滑。

    第二个是this library,它使用 ValueAnimators 并提供更流畅的动画以及更多功能。我最终坚持使用这个库,因为它在视觉上提供了更好的结果并且易于定制。

    【讨论】:

      猜你喜欢
      • 2021-04-06
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      • 2014-06-14
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多