refactor: 对View层基类进行抽象
This commit is contained in:
@ -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)
|
||||
|
||||
@ -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?,
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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?,
|
||||
|
||||
@ -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()
|
||||
}
|
||||
@ -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()
|
||||
}
|
||||
Reference in New Issue
Block a user