ViewGroupカスタムを別のカスタムに追加するさまざまな方法をデバッグするのに 1 日を費やしましたが、ViewGroupどれも機能せず、その方法を示す公式のドキュメントやサンプルがないため、ほぼ夢中になりました...
基本的に、私は2つのカスタムを持っていますViewGroup:
HorizontalDockView伸びるViewGroupGameEntryView伸びるFrameLayout
HorizontalDockView、などをオーバーライドonDrawし、onMeasureすべてが正常に呼び出され、完全に機能します。ただし、GameEntryView内部HorizontalDockViewのコンストラクターから作成して を呼び出すaddView(gameEntryView)と、がどのスレッドから呼び出されたかにgameEntryView関係なく、親で呼び出し、ロード、および setContentView が表示されることはありません。すべてのオブジェクトを一覧表示すると、まだそこにあります。layoutParamsaddViewHorizontalDockViewhorizontalDockView.getChildAt();gameEntryView
絶望的です、私は GameEntryView のonDraw, onMeasure,dispatchDrawメソッドを介してデバッグしようとしましたが、実際にはどれも呼び出されないことに気付きました! いいえ.. 一度もありません!
親 (HorizontalDockView の) on* 呼び出しですべての子ビューを反復処理し、子の on* を明示的に呼び出す必要がありますか? 親で super.on*() を呼び出していました。
setWillNotDraw( false );親クラスと子クラスの両方を呼び出しました。
親のビュー内に子を表示するにはどうすればよいですか? 簡単なサンプルまたは既存の小さなオープン ソース プロジェクトは大歓迎です!
どうもありがとうございました!