###前提・実現したいこと
Fragment の代わりに CustomView を使用する実装を試しています。CustomView 中でも自身が ViewGroup を継承していれば infrate() を行うことで layout.xml を読み込むことが出来ますが、以下の記事にあるように継承元の ViewGroup 又は CustomView クラス自身が view の階層に差し込まれてしまいます。
http://trickyandroid.com/protip-inflating-layout-for-your-custom-view/
元記事では layout.xml 中で merge タグや include を使用することでこの問題を回避していますが、layout.xml 中のルートタグを変えるとデザインビューで IDE 支援を受けることが出来なくなってしまいます。最近は ConstraintLayout のような、IDE 機能を生かした View クラスもある為これが使用出来なくなるのは厳しいです。
layout.xml のルートタグを変更せずに CustomView 内で merge 相当のことを行う方法があれば理想的ですが、そのような方法は見付けることが出来ませんでした。良いアプローチの方法があれば教えて下さい。
###試したこと
以下のようなアプローチは検討しています。
- CustomView を諦めて Fragment でやる
- View が差し込まれることを気にしない(FrameLayout 等にしておけば実装に影響も無く、パフォーマンスへの影響も大したことは無いはず)
- CustomView で ViewGroup を継承せずに、レイアウトの親にあたるインスタンスを保持して inflate() 時の第二引数 root に渡す(上手くいくか不明、そもそも余計なインスタンスを保持することが良くない気配がある)
###補足情報(言語/FW/ツール等のバージョンなど)
以下のページも参考にさせて頂きました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/24 02:22