[Android] DataBinding-ktx 2.0.0 をリリースしました
追記:DataBinding-ktx 2.2.0 をリリースしました
・・・
DataBinding-ktx とは
DataBinding に関する問題を解決し、安全・簡単に利用するためのライブラリです。
DataBinding に関する問題
1. Activity と Fragment で変数宣言の方法が異なる
Activity では by lazy を使えますが、
Fragment では BackStack や Attach/Detach を使う場合は View が再生成されるので by lazy(*) が使えません。
※: 再生成後の View に対して binding インスタンスが生成されないため
2. setLifecycleOwner を呼び出し忘れる
LiveData を利用している場合、setLifecycleOwner を呼び出さないと LiveData が DataBinding されません。
DataBinding-ktx による解決
1. Activity と Fragment で変数宣言の方法が異なる
Kotlin の Delegated Properties によって Activity と Fragment で同じ書き方でプロパティを宣言することができます。
// Activity
val binding: MainActivityBinding by dataBinding(R.layout.main_activity)
// Fragment
val binding: MainFragmentBinding by dataBinding(R.layout.main_fragment)
2. setLifecycleOwner を呼び出し忘れる
binding 変数に初回アクセス時に自動的に setLifecycleOwner が呼び出されているため呼び出し忘れがなくなります。
DataBinding-ktx の使い方
Activity
class MainActivity : AppCompatActivity() {
private val binding: MainActivityBinding by dataBinding(R.layout.main_activity)
}
Fragment
class MainFragment : Fragment() {
private val binding: MainFragmentBinding by dataBinding(R.layout.main_fragment)
}
build.gradle
repositories {
maven { url "https://jitpack.io" }
}
dependencies {
implementation 'com.github.wada811:DataBinding-ktx:x.y.z'
}
バージョンは README を参照してください。
ここから先は
0字
¥ 100
この記事が気に入ったらチップで応援してみませんか?