RadioGroupを捨てることで解決!
RadioGroupのつらみ
-
LinearLayoutのサブクラスのため、レイアウト配置が縛られる - 子要素が
RadioButtonでないとダメ
自由なレイアウト、自由なView(extends Checkable)について、checkedの排他制御をしたいだけなんじゃ!
つくった
はー、つっかえって思ったのでつくりました。
やれること
- 任意の
View extends Checkableについて、checkedの排他選択ができる - 同じ
ViewGroupで自由にグルーピングできる -
Viewを縛らない - レイアウトを縛らない
どうなってるの?
自分の配置されているレイアウト階層を検索して、排他となるCheckableのグループを作ります。
そのグループ内で、お互いに子Viewの状態変化を通知しあって、checked状態を排他に保ちます。
やらなかったこと
RadioGroupのような、どいつがcheckedなのかってのは取れないようにしました。
というのも、RadioGroupのgetCheckedRadioButtonId()はあっても別に嬉しくないと思っていて、
ID振るなら自分で子View見るのと大差ないやん、と。
なにより実装めんどくさいし
課題
-
onLayout()で検索してるけど、ほかにいいライフサイクルないんだろうか- 自分の子の検索については
onFinishInflate()でもいける気がする?
- 自分の子の検索については
-
childDrawableStateChanged()でこーいうことしていいの?
参考
今回は特にないです。



