4

我在 API 22 上。橙色视图AppBarLayout位于CoordinatorLayout. 我试图通过将其翻译到顶部来使其消失。我想让它离开屏幕。

我从以下位置获得翻译高度:

AppBarLayout bar;
Rect r = new Rect();
bar.getLocalVisibleRect(r );
float h = r.height();
  • 动画只是一个调用bar.animate().translationY(-h)等等;(也试过 ViewCompat.animate(bar), new TranslateAnimation(), ...)
  • 直接调用是对 的直接调用bar.setTranslationY(-h)

在此处输入图像描述

问题是它会立即被替换到以前的位置,并且翻译回到 0(即,bar.getTranslationY() == 0即使我刚刚将其设置为-h)。我花了几个小时在这上面;你可能认为

也许这是不可能的;CoordinatorLayout 不允许这种行为

这不是真的。完全相同的代码在 API17 上就像一个魅力,在过去的几个小时里,我不明白为什么它不应该在 API22 上。我会很感激任何帮助,无论是理解为什么这是不可能的,或者导致这种情况的 API17 和 API22 之间的区别是什么。

或者,也许,如何解决这个问题。抱歉帧率低。(附带问题:我应该提交错误报告吗?你认为这是一个错误吗?

4

0 回答 0