Skip to content

Commit 5237f00

Browse files
Add a method of ViewGroup#inflate #30
1 parent ac85fe3 commit 5237f00

File tree

3 files changed

+10
-1
lines changed
  • app/src/main/java/com/dylanc/viewbinding/sample/widget
  • viewbinding-ktx/src/main/java/com/dylanc/viewbinding
  • viewbinding-nonreflection-ktx/src/main/java/com/dylanc/viewbinding/nonreflection

3 files changed

+10
-1
lines changed

app/src/main/java/com/dylanc/viewbinding/sample/widget/CustomView.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,11 @@ package com.dylanc.viewbinding.sample.widget
1818

1919
import android.content.Context
2020
import android.util.AttributeSet
21+
import android.view.LayoutInflater
2122
import androidx.constraintlayout.widget.ConstraintLayout
2223
import com.dylanc.viewbinding.binding
24+
import com.dylanc.viewbinding.inflate
25+
import com.dylanc.viewbinding.nonreflection.inflate
2326
import com.dylanc.viewbinding.sample.R
2427
import com.dylanc.viewbinding.sample.databinding.LayoutCustomViewBinding
2528

@@ -29,7 +32,7 @@ import com.dylanc.viewbinding.sample.databinding.LayoutCustomViewBinding
2932
class CustomView(context: Context, attrs: AttributeSet? = null) :
3033
ConstraintLayout(context, attrs) {
3134

32-
val binding: LayoutCustomViewBinding by binding()
35+
val binding = inflate<LayoutCustomViewBinding>()
3336

3437
init {
3538
binding.tvTitle.setText(R.string.show_loading_dialog)

viewbinding-ktx/src/main/java/com/dylanc/viewbinding/ViewBinding.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ inline fun <reified VB : ViewBinding> ViewGroup.binding(attachToParent: Boolean
5959
inflateBinding<VB>(LayoutInflater.from(context), if (attachToParent) this else null, attachToParent)
6060
}
6161

62+
inline fun <reified VB : ViewBinding> ViewGroup.inflate() =
63+
inflateBinding<VB>(LayoutInflater.from(context), this, true)
64+
6265
inline fun <reified VB : ViewBinding> TabLayout.Tab.setCustomView(onBindView: VB.() -> Unit) {
6366
customView = inflateBinding<VB>(LayoutInflater.from(parent!!.context)).apply(onBindView).root
6467
}

viewbinding-nonreflection-ktx/src/main/java/com/dylanc/viewbinding/nonreflection/ViewBinding.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ fun <VB : ViewBinding> ViewGroup.binding(
5858
inflate(LayoutInflater.from(context), if (attachToParent) this else null, attachToParent)
5959
}
6060

61+
inline fun <reified VB : ViewBinding> ViewGroup.inflate(inflate: (LayoutInflater, ViewGroup?, Boolean) -> VB) =
62+
inflate(LayoutInflater.from(context), this, true)
63+
6164
fun <VB : ViewBinding> TabLayout.Tab.setCustomView(
6265
inflate: (LayoutInflater) -> VB,
6366
onBindView: VB.() -> Unit

0 commit comments

Comments
 (0)