👌
ViewGroup内のとあるViewを検索し、True or Falseを返す拡張メソッド
あまりに忙しく投稿を失念していたのと、軽いネタ(というより備忘録的ななにか)があったので・・・。
とあるViewGroup内から、該当のViewが存在するかを返す拡張メソッドが必要になったので、検討してみたものです。
それが・・・、
import android.view.View
import android.view.ViewGroup
import androidx.core.view.children
fun ViewGroup.findAllViewByView(view: View?): Boolean {
view?:return false
if (indexOfChild(view) > -1) {
return true
}
val viewGroupList = children.filter { it is ViewGroup }.map { it as ViewGroup }
if (viewGroupList.count() > 0) {
return viewGroupList.map { it.findAllViewByView(view) }.reduce { acc, b -> acc || b }
}
return false
}
こんなの。
これがあれば、ViewGroup内の更にViewGroupを参照してくれるので、非常に大雑把に利用できます!
まあ、普通は利用する機会は無いと思いますが、とある事情で上記の処理を検討した次第です。
追伸、
findAllViewByView
・・・ナンノコッチャ!?
ネーミングも勉強中です・・・。
Discussion