hogepiyoエンジニアリング

トラブルシューティングからノウハウ、作ってみた系まで扱う情報系ブログ

CoordinatorLayoutでAppBarLayoutと連動してスクロールするWebView

AndroidのUIでツールバーとコンテンツ領域が連動してツールバーが広がったり縮まったりするやつありますよね

Mastering the Coordinator Layout · Saúl Molinero

あれはCoordinatorLayoutというLayoutを使って実装されているんですが、コンテンツ領域のViewとして使えるものが限られています

例えばRecyclerViewとかNestedScrollViewとか、NestedScrollingChildインタフェースを実装しているクラスとなら一緒に使えます

ただ今回WebViewを使いたかったんですがWebViewではNestedScrollingChildが実装されていないので素のままだとCoordinatorLayoutと一緒に使えません

これについては同じことで困っている人も何人かいるようで、調べてる最中にtwitterとかstackoverflowとかで見かけました

stackoverflow.com

NestedScrollingChildの実装が結構難しいんですよね。。

NestedScrollViewのなかに入れることもやってみたんですが、思った動きにならなかったので結局WebViewを継承したクラスにNestedScrollingChildを実装しました

github.com

実装の都合上AppBarLayout側でも処理が必要だったのでAppBarLayoutを継承したNestedWebViewAppBarLayoutも一緒に使う必要があります

正直AppBarLayoutにも手を加えているのがちょっと微妙な気もしています ふーむ

RecyclerViewとNestedScrollViewの実装を見ながら雰囲気で実装したので変なところも多々あるかもしれません

あとAnrdoidの書き方的に変な部分もあるかもしれません

どんなPRでももらえると泣いて喜びます

issueだけでも歓迎です