diff --git a/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameFragment.kt b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameFragment.kt index b754596..9924a86 100644 --- a/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameFragment.kt +++ b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameFragment.kt @@ -22,8 +22,12 @@ import java.lang.reflect.ParameterizedType abstract class BaseFrameFragment : Fragment() { - protected lateinit var mBinding: VB - + protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) { + val vbClass: Class = + (javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0] as Class + val inflate = vbClass.getMethod("inflate", LayoutInflater::class.java) + inflate.invoke(null, layoutInflater) as VB + } protected val mViewModel: VM by lazy(mode = LazyThreadSafetyMode.NONE) { val vmClass: Class = (javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[1] as Class @@ -38,10 +42,6 @@ abstract class BaseFrameFragment : container: ViewGroup?, savedInstanceState: Bundle? ): View? { - val vbClass: Class = - (javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0] as Class - val inflate = vbClass.getDeclaredMethod("inflate", LayoutInflater::class.java) - mBinding = inflate.invoke(null, layoutInflater, container, false) as VB return mBinding.root } diff --git a/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameNotMVVMActivity.kt b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameNotMVVMActivity.kt index beda88f..a2d8cb4 100644 --- a/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameNotMVVMActivity.kt +++ b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameNotMVVMActivity.kt @@ -23,6 +23,7 @@ abstract class BaseFrameNotMVVMActivity : AppCompatActivity() val inflate = vbClass.getMethod("inflate", LayoutInflater::class.java) inflate.invoke(null, layoutInflater) as VB } + protected abstract fun initView() override fun onCreate(savedInstanceState: Bundle?) { diff --git a/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameNotMVVMFragment.kt b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameNotMVVMFragment.kt index c6c7d37..8d73141 100644 --- a/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameNotMVVMFragment.kt +++ b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameNotMVVMFragment.kt @@ -19,7 +19,12 @@ import java.lang.reflect.ParameterizedType */ abstract class BaseFrameNotMVVMFragment : Fragment() { - protected lateinit var mBinding: VB + protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) { + val vbClass: Class = + (javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0] as Class + val inflate = vbClass.getMethod("inflate", LayoutInflater::class.java) + inflate.invoke(null, layoutInflater) as VB + } protected abstract fun initView() @@ -28,10 +33,6 @@ abstract class BaseFrameNotMVVMFragment : Fragment() { container: ViewGroup?, savedInstanceState: Bundle? ): View? { - val vbClass: Class = - (javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0] as Class - val inflate = vbClass.getDeclaredMethod("inflate", LayoutInflater::class.java) - mBinding = inflate.invoke(null, layoutInflater, container, false) as VB return mBinding.root }