我正在使用ViewBinding,我正在努力减少创建一个Fragment的代码,该Fragment是一个抽象类,包含以下代码:
abstract class MyFragment<T> : Fragment() {
private var binding: T? = null
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = getBinding()
return binding.root
}
abstract fun getBinding(): T
}
为了使它工作,我需要使T扩展一个类,并且这个类需要是所有绑定类的父类。
所有生成的绑定类都有一个公共父类?如果是这样的话,那是什么?
它应该是ViewBinding
。代码片段应该适用于基本片段。
abstract class BaseFragment<V: ViewBinding> : Fragment(){
private var binding: V? = null
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = getBinding()
return binding?.root
}
abstract fun getBinding(): V
}