package com.xw.common.base import android.content.Intent import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.databinding.ViewDataBinding import com.xw.common.utils.BindUtils.enableBindingLogging import java.lang.reflect.ParameterizedType abstract class BaseFragmentNoVM : BaseLazyloadFragment() { var TAG = "zmc-${this.javaClass.simpleName}" lateinit var binding: V override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) initDataBinding() } /** * 创建dataBingding,并自动设置布局 */ private fun initDataBinding() { val dbClass = genericTypeBinding() val method = dbClass.getMethod("inflate", LayoutInflater::class.java) binding = method.invoke(null, layoutInflater) as V binding.enableBindingLogging() } /** * 跳转页面 * * @param clz 所跳转的目的Activity类 * @param bundle 跳转所携带的信息 */ open fun startActivity(clz: Class<*>?, bundle: Bundle? = null) { val intent = Intent(activity, clz) bundle?.let { intent.putExtras(it) } startActivity(intent) } override fun getContentView(inflater: LayoutInflater, container: ViewGroup?): View { return binding.root } fun genericTypeBinding(): Class { return (javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0] as Class } }