我在 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 之间的区别是什么。
或者,也许,如何解决这个问题。抱歉帧率低。(附带问题:我应该提交错误报告吗?你认为这是一个错误吗?)