blog2022-07-07第22回コベチケの会コベチケの会コベリンの最近の取り組みとして、業務などで役立ちそうな知見を共有する会を開催することになりました。そのついでに発表に使ったアジェンダもそのまま公開してしまおうという豪快な企画です。アジェンダをそのままコピペして公開したものなので若干見にくい箇所もあるかもしれませんが、ご了承ください。カスタマイズを調査したのでその記録。いう感じで画面下部のタブのアイコンがはみ出して強調表示されたUIをBottomNavigationBarで実現できないだろうか?BottomNavigationBar画面下部に表示されるナビゲーションバー。昔のAndroidだと非推奨なUIだったのも懐かしい。Compose内の実装を参考にしつつ、何やっているのかを読み解く。BottomNavigationBarに表示する要素。}Rowを使って並べているだけ。Barの高さはBottomNavigationHeight=56dpで固定されている。}weight(1f)が指定されているので横幅を設定しても、すべての要素で画面中を収めるように広まってしまう。横幅のカスタムはできない。マテリアルデザインでBottomNavigationItemはアイコンとラベルで構成するよう定義されていて、その実装はBottomNavigationItemBaselineLayoutにある。}}アイコンとラベルを並べているだけ。パラメータに渡されるiconPositionAnimationProgressはアイコンの透過度を変えるためのアニメーションの進捗。BottomNavigationBarをタップして画面遷移が発生すると透過度を操作するアニメーションが実行される。実態はanimateFloatAsStateで管理された値。結論BottomNavigationBar自体の高さが固定で、その中の要素もBottomNavigationBar内に描画されるためBottomNavigationBarを使った目的のデザインの実装は難しそう。composeのレイアウトシステムならレイアウトは難しくない。画面遷移時の透過に関するアニメーションの実装も忘れずに。ComposeはBottomNavigationItemのiconとかで好きなレイアウトを指定してカスタムができて楽。Componentと連携して楽になるのでAndroid開発がどんどん楽になっているなと思う。デフォルトで実装されているからあんまり意識することはない。公開するほうが理にかなってるなと感じた。作ったこんにちは、亀山です。11はてなブログをはじめよう!covellineさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。