From 0dcc3bf105d2dd926359ee50170d0afdc13648e9 Mon Sep 17 00:00:00 2001 From: Quyunshuo Date: Sat, 26 Sep 2020 18:05:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20fragment=E5=9F=BA=E7=B1=BB=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/quyunshuo/base/mvvm/v/BaseFrameFragment.kt | 12 ++++++------ .../base/mvvm/v/BaseFrameNotMVVMActivity.kt | 1 + .../base/mvvm/v/BaseFrameNotMVVMFragment.kt | 11 ++++++----- 3 files changed, 13 insertions(+), 11 deletions(-) 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 }