CoordinatorLayoutでAppBarLayoutと連動してスクロールするWebView
AndroidのUIでツールバーとコンテンツ領域が連動してツールバーが広がったり縮まったりするやつありますよね
Mastering the Coordinator Layout · Saúl Molinero
あれはCoordinatorLayoutというLayoutを使って実装されているんですが、コンテンツ領域のViewとして使えるものが限られています
例えばRecyclerViewとかNestedScrollViewとか、NestedScrollingChildインタフェースを実装しているクラスとなら一緒に使えます
ただ今回WebViewを使いたかったんですがWebViewではNestedScrollingChildが実装されていないので素のままだとCoordinatorLayoutと一緒に使えません
これについては同じことで困っている人も何人かいるようで、調べてる最中にtwitterとかstackoverflowとかで見かけました
Android の WebView と CoordinatorLayout を組み合わせたいけどどうするのがええんや……。 (WebView が NestedScrollingChild インターフェイスを実装してないから困る。)
— Nobuoka Yu (@nobuoka) 2016年1月21日
NestedScrollingChildの実装が結構難しいんですよね。。
NestedScrollViewのなかに入れることもやってみたんですが、思った動きにならなかったので結局WebViewを継承したクラスにNestedScrollingChildを実装しました
実装の都合上AppBarLayout側でも処理が必要だったのでAppBarLayoutを継承したNestedWebViewAppBarLayoutも一緒に使う必要があります
正直AppBarLayoutにも手を加えているのがちょっと微妙な気もしています ふーむ
RecyclerViewとNestedScrollViewの実装を見ながら雰囲気で実装したので変なところも多々あるかもしれません
あとAnrdoidの書き方的に変な部分もあるかもしれません
どんなPRでももらえると泣いて喜びます
issueだけでも歓迎です