BaseFragment.kt 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package com.example.zhpan.circleviewpager.fragment
  2. import android.content.Context
  3. import android.os.Bundle
  4. import android.view.LayoutInflater
  5. import android.view.View
  6. import android.view.ViewGroup
  7. import androidx.annotation.ColorInt
  8. import androidx.annotation.ColorRes
  9. import androidx.core.content.ContextCompat
  10. import com.trello.rxlifecycle2.components.support.RxFragment
  11. import java.util.ArrayList
  12. /**
  13. * MVC模式的Base fragment
  14. */
  15. abstract class BaseFragment : RxFragment() {
  16. protected var mDrawableList: MutableList<Int> = ArrayList()
  17. protected lateinit var mContext: Context
  18. /**
  19. * 获取当前Activity的UI布局
  20. *
  21. * @return 布局id
  22. */
  23. protected abstract val layout: Int
  24. override fun onAttach(context: Context) {
  25. super.onAttach(context)
  26. this.mContext = context.applicationContext
  27. }
  28. override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
  29. val view = inflater.inflate(layout, container, false)
  30. initData(3)
  31. initTitle()
  32. initView(savedInstanceState, view)
  33. return view
  34. }
  35. protected fun initData(j: Int) {
  36. mDrawableList.clear()
  37. for (i in 0..j) {
  38. val drawable = resources.getIdentifier("bg_card$i", "drawable", mContext.packageName)
  39. mDrawableList.add(drawable)
  40. }
  41. }
  42. @ColorInt
  43. protected fun getColor(@ColorRes colorRes: Int): Int {
  44. return ContextCompat.getColor(context!!,colorRes)
  45. }
  46. /**
  47. * 初始化标题
  48. */
  49. protected abstract fun initTitle()
  50. /**
  51. * 初始化数据
  52. */
  53. protected abstract fun initView(savedInstanceState: Bundle?, view: View)
  54. }