ViewBindingUtilを公開しました。
DataBindingのようなDataBindingUtilが無いので作りました。
DataBindingUtil
DataBindingUtil | Android DevelopersViewBindingUtil
DataBindingと違ってViewBindingはViewDataBindingとかを継承していないのでリフレクションを使用するしかありません。詳しくはコードを見てください。
https://github.com/matsudamper/ViewBindingUtil
使い方
dependencies
jitpackに上がってます
repositories { maven { url 'https://jitpack.io' } } dependencies { implementation 'com.github.matsudamper:ViewBindingUtil:${version}' }
code
ジェネリクスから作成できるようになりました。
// ジェネリクスを使用して生成できます ViewBindingUtil.inflate<ActivityMainBinding>(layoutInflater) // ジェネリクスを使用してbindできます ViewBindingUtil.bind<ActivityMainBinding>(view) // Activity やFragmentでinflate時にlayoutInflaterがいらない拡張関数。 binding : HogeBinding = inflateViewBinding()
主にこれがやりたかった。
// Activityの引数にidを渡すやつに対応 class SampleActivity : AppCompatActivity(R.layout.activity_main) { private val binding by bindViewBinding<ActivityMainBinding>() } // Fragmentに対応、Viewの再生成も考慮してあります class SampleFragment : Fragment(R.layout.fragment_main) { private val binding by bindViewBinding<FragmentMainBinding>() }
P.S.
配信の手段でGitHub PackagesとかあるけどJitPackは楽でいいね。Gradleに記述するだけ。