バックグラウンド
いくつかの特別な状態 (チェック/押されているなど) を持つレイアウトがあり、このレイアウトに基づいて独自のドローアブルを適用するようにその子を設定したいと考えています。
私は、それぞれの子 (およびおそらくすべての子孫) に対してduplicateParentStateを true に設定する代替手段を探しています。
私が試したこと
カスタム ビューに各子に設定する属性を持たせようとしましたが、この属性をすべての子に適用するメソッド呼び出しが見つかりませんでした。私が試した各メソッドでは、 getChildCount() に対して 0 を返すか、子自体には何もしません ( setDuplicateParentStateEnabled()を使用) 。
問題
ドキュメントにあるように、 setDuplicateParentStateEnabled を使用しても、必要な場合は何もしません:
注: 現在の実装では、ビューが ViewGroup に追加された後にこのプロパティを true に設定しても、まったく効果がない可能性があります。このプロパティは、常に XML から使用するか、このビューを ViewGroup に追加する前に true に設定する必要があります。
使用が遅すぎるようですが、子がまだ親に存在しないため、遅く呼び出す必要があります...
質問
各子の duplicateParentState の設定を回避し、親ビューに設定するだけでこの機能を実現するにはどうすればよいですか?