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