refactor: 对View层基类进行抽象

This commit is contained in:
Quyunshuo
2020-10-13 09:18:53 +08:00
parent 6e186de3a8
commit fb47e3232a
6 changed files with 37 additions and 15 deletions

View File

@ -18,7 +18,7 @@ import java.lang.reflect.ParameterizedType
* @Remark: Activity基类 与项目无关
*/
abstract class BaseFrameActivity<VB : ViewBinding, VM : ViewModel> :
AppCompatActivity() {
AppCompatActivity(), FrameView {
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
val vbClass: Class<VB> =
@ -33,9 +33,6 @@ abstract class BaseFrameActivity<VB : ViewBinding, VM : ViewModel> :
ViewModelProvider(this).get(vmClass)
}
protected abstract fun initView()
protected abstract fun initViewObserve()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(mBinding.root)

View File

@ -19,8 +19,7 @@ import java.lang.reflect.ParameterizedType
* @Class: BaseFrameFragment
* @Remark: Fragment基类 与项目无关
*/
abstract class BaseFrameFragment<VB : ViewBinding, VM : ViewModel> :
Fragment() {
abstract class BaseFrameFragment<VB : ViewBinding, VM : ViewModel> : Fragment(), FrameView {
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
val vbClass: Class<VB> =
@ -34,9 +33,6 @@ abstract class BaseFrameFragment<VB : ViewBinding, VM : ViewModel> :
ViewModelProvider(this).get(vmClass)
}
protected abstract fun initView()
protected abstract fun initViewObserve()
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,

View File

@ -15,7 +15,7 @@ import java.lang.reflect.ParameterizedType
* @Class: BaseFrameNotMVVMActivity
* @Remark: 不使用 MVVM 的 Activity 基类
*/
abstract class BaseFrameNotMVVMActivity<VB : ViewBinding> : AppCompatActivity() {
abstract class BaseFrameNotMVVMActivity<VB : ViewBinding> : AppCompatActivity(), FrameNotMVVMView {
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
val vbClass: Class<VB> =
@ -24,8 +24,6 @@ abstract class BaseFrameNotMVVMActivity<VB : ViewBinding> : AppCompatActivity()
inflate.invoke(null, layoutInflater) as VB
}
protected abstract fun initView()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(mBinding.root)

View File

@ -17,7 +17,7 @@ import java.lang.reflect.ParameterizedType
* @Class: BaseFrameNotMVVMFragment
* @Remark: 不使用 MVVM 的 Fragment 基类
*/
abstract class BaseFrameNotMVVMFragment<VB : ViewBinding> : Fragment() {
abstract class BaseFrameNotMVVMFragment<VB : ViewBinding> : Fragment(), FrameNotMVVMView {
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
val vbClass: Class<VB> =
@ -26,8 +26,6 @@ abstract class BaseFrameNotMVVMFragment<VB : ViewBinding> : Fragment() {
inflate.invoke(null, layoutInflater) as VB
}
protected abstract fun initView()
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,

View File

@ -0,0 +1,14 @@
package com.quyunshuo.base.mvvm.v
/**
* @Author: QuYunShuo
* @Time: 2020/10/13
* @Class: FrameNotMVVMView
* @Remark: View层基类抽象
*/
interface FrameNotMVVMView {
/**
* 初始化View
*/
fun initView()
}

View File

@ -0,0 +1,19 @@
package com.quyunshuo.base.mvvm.v
/**
* @Author: QuYunShuo
* @Time: 2020/10/13
* @Class: FrameView
* @Remark: View层基类抽象
*/
interface FrameView {
/**
* 初始化View
*/
fun initView()
/**
* 订阅LiveData
*/
fun initViewObserve()
}