refactor: 对View层基类进行抽象
This commit is contained in:
@ -18,7 +18,7 @@ import java.lang.reflect.ParameterizedType
|
|||||||
* @Remark: Activity基类 与项目无关
|
* @Remark: Activity基类 与项目无关
|
||||||
*/
|
*/
|
||||||
abstract class BaseFrameActivity<VB : ViewBinding, VM : ViewModel> :
|
abstract class BaseFrameActivity<VB : ViewBinding, VM : ViewModel> :
|
||||||
AppCompatActivity() {
|
AppCompatActivity(), FrameView {
|
||||||
|
|
||||||
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
|
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
|
||||||
val vbClass: Class<VB> =
|
val vbClass: Class<VB> =
|
||||||
@ -33,9 +33,6 @@ abstract class BaseFrameActivity<VB : ViewBinding, VM : ViewModel> :
|
|||||||
ViewModelProvider(this).get(vmClass)
|
ViewModelProvider(this).get(vmClass)
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract fun initView()
|
|
||||||
protected abstract fun initViewObserve()
|
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setContentView(mBinding.root)
|
setContentView(mBinding.root)
|
||||||
|
|||||||
@ -19,8 +19,7 @@ import java.lang.reflect.ParameterizedType
|
|||||||
* @Class: BaseFrameFragment
|
* @Class: BaseFrameFragment
|
||||||
* @Remark: Fragment基类 与项目无关
|
* @Remark: Fragment基类 与项目无关
|
||||||
*/
|
*/
|
||||||
abstract class BaseFrameFragment<VB : ViewBinding, VM : ViewModel> :
|
abstract class BaseFrameFragment<VB : ViewBinding, VM : ViewModel> : Fragment(), FrameView {
|
||||||
Fragment() {
|
|
||||||
|
|
||||||
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
|
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
|
||||||
val vbClass: Class<VB> =
|
val vbClass: Class<VB> =
|
||||||
@ -34,9 +33,6 @@ abstract class BaseFrameFragment<VB : ViewBinding, VM : ViewModel> :
|
|||||||
ViewModelProvider(this).get(vmClass)
|
ViewModelProvider(this).get(vmClass)
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract fun initView()
|
|
||||||
protected abstract fun initViewObserve()
|
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater,
|
inflater: LayoutInflater,
|
||||||
container: ViewGroup?,
|
container: ViewGroup?,
|
||||||
|
|||||||
@ -15,7 +15,7 @@ import java.lang.reflect.ParameterizedType
|
|||||||
* @Class: BaseFrameNotMVVMActivity
|
* @Class: BaseFrameNotMVVMActivity
|
||||||
* @Remark: 不使用 MVVM 的 Activity 基类
|
* @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) {
|
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
|
||||||
val vbClass: Class<VB> =
|
val vbClass: Class<VB> =
|
||||||
@ -24,8 +24,6 @@ abstract class BaseFrameNotMVVMActivity<VB : ViewBinding> : AppCompatActivity()
|
|||||||
inflate.invoke(null, layoutInflater) as VB
|
inflate.invoke(null, layoutInflater) as VB
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract fun initView()
|
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setContentView(mBinding.root)
|
setContentView(mBinding.root)
|
||||||
|
|||||||
@ -17,7 +17,7 @@ import java.lang.reflect.ParameterizedType
|
|||||||
* @Class: BaseFrameNotMVVMFragment
|
* @Class: BaseFrameNotMVVMFragment
|
||||||
* @Remark: 不使用 MVVM 的 Fragment 基类
|
* @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) {
|
protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) {
|
||||||
val vbClass: Class<VB> =
|
val vbClass: Class<VB> =
|
||||||
@ -26,8 +26,6 @@ abstract class BaseFrameNotMVVMFragment<VB : ViewBinding> : Fragment() {
|
|||||||
inflate.invoke(null, layoutInflater) as VB
|
inflate.invoke(null, layoutInflater) as VB
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract fun initView()
|
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater,
|
inflater: LayoutInflater,
|
||||||
container: ViewGroup?,
|
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