私は API 22 を使用しています。オレンジ色のビューは のAppBarLayout
内側CoordinatorLayout
です。上に翻訳して無くすようにしています。画面からはみ出してほしい。
私は翻訳の高さを取得しています:
AppBarLayout bar;
Rect r = new Rect();
bar.getLocalVisibleRect(r );
float h = r.height();
- Animatedは単なる呼び出し
bar.animate().translationY(-h)
などです。(ViewCompat.animate(bar)、new TranslateAnimation()、...)も試しました) - 直接呼び出しは、 への直接呼び出し
bar.setTranslationY(-h)
です。
問題は、以前の場所で即座に置き換えられ、翻訳が 0 に戻ることです (つまり、bar.getTranslationY() == 0
に設定しただけでも-h
)。私はこれに何時間も費やしました。あなたが考えるかもしれません
多分それは不可能です。CoordinatorLayout はそのような動作を許可していません
それは真実ではない。まったく同じコードが API17 で魅力的に機能し、最後の数時間で API22 で機能しない理由がわかりませんでした。これが不可能な理由、またはこれを引き起こすAPI17とAPI22の違いを理解する上で、助けていただければ幸いです。
または、おそらく、問題を回避する方法。フレームレートが低くてすみません。(補足質問: バグ レポートを提出する必要がありますか? バグだと思いますか? )