File tree Expand file tree Collapse file tree 2 files changed +10
-2
lines changed
viewbinding-ktx/src/main/java/com/dylanc/viewbinding
viewbinding-nonreflection-ktx/src/main/java/com/dylanc/viewbinding/nonreflection Expand file tree Collapse file tree 2 files changed +10
-2
lines changed Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ import androidx.lifecycle.Lifecycle
29
29
import androidx.lifecycle.LifecycleObserver
30
30
import androidx.lifecycle.OnLifecycleEvent
31
31
import androidx.viewbinding.ViewBinding
32
+ import com.google.android.material.navigation.NavigationView
32
33
import com.google.android.material.tabs.TabLayout
33
34
import kotlin.properties.ReadOnlyProperty
34
35
import kotlin.reflect.KProperty
@@ -66,7 +67,10 @@ inline fun <reified VB : ViewBinding> TabLayout.Tab.bindCustomView(onBindView: V
66
67
customView?.bind<VB >()?.run (onBindView)
67
68
68
69
inline fun <reified VB : ViewBinding > TabLayout.Tab.bindCustomView (bind : (View ) -> VB , onBindView : VB .() -> Unit ) =
69
- customView?.let { bind(it).run (onBindView) }
70
+ customView?.let { bind(it) }?.run (onBindView)
71
+
72
+ inline fun <reified VB : ViewBinding > NavigationView.setHeaderView (index : Int = 0, onBindView : VB .() -> Unit ) =
73
+ getHeaderView(index)?.bind<VB >()?.run (onBindView)
70
74
71
75
inline fun <reified VB : ViewBinding > inflateBinding (layoutInflater : LayoutInflater ) =
72
76
VB ::class .java.getMethod(" inflate" , LayoutInflater ::class .java).invoke(null , layoutInflater) as VB
Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ import androidx.lifecycle.Lifecycle
29
29
import androidx.lifecycle.LifecycleObserver
30
30
import androidx.lifecycle.OnLifecycleEvent
31
31
import androidx.viewbinding.ViewBinding
32
+ import com.google.android.material.navigation.NavigationView
32
33
import com.google.android.material.tabs.TabLayout
33
34
import kotlin.properties.ReadOnlyProperty
34
35
import kotlin.reflect.KProperty
@@ -65,7 +66,10 @@ fun <VB : ViewBinding> TabLayout.Tab.setCustomView(
65
66
}
66
67
67
68
inline fun <reified VB : ViewBinding > TabLayout.Tab.bindCustomView (bind : (View ) -> VB , onBindView : VB .() -> Unit ) =
68
- customView?.let { bind(it).run (onBindView) }
69
+ customView?.let { bind(it) }?.run (onBindView)
70
+
71
+ inline fun <reified VB : ViewBinding > NavigationView.setHeaderView (index : Int = 0, bind : (View ) -> VB , onBindView : VB .() -> Unit ) =
72
+ getHeaderView(index)?.let { bind(it) }?.run (onBindView)
69
73
70
74
inline fun Fragment.doOnDestroyView (crossinline block : () -> Unit ) =
71
75
viewLifecycleOwner.lifecycle.addObserver(object : LifecycleObserver {
You can’t perform that action at this time.
0 commit comments