RouterExt.kt 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package com.develop.base.ext
  2. import android.app.Activity
  3. import android.app.Application
  4. import androidx.fragment.app.Fragment
  5. import com.alibaba.android.arouter.facade.Postcard
  6. import com.alibaba.android.arouter.facade.callback.NavigationCallback
  7. import com.alibaba.android.arouter.launcher.ARouter
  8. /**
  9. * 注意block内不要再调用navigation
  10. */
  11. fun Activity.navigateTo(
  12. path: String,
  13. params: (Postcard.() -> Unit)? = null
  14. ) {
  15. val postcard = ARouter.getInstance().build(path)
  16. params?.let { postcard.it() }
  17. postcard.navigation(this)
  18. }
  19. fun Activity.navigateTo(
  20. path: String,requestCode :Int,
  21. params: (Postcard.() -> Unit)? = null
  22. ) {
  23. val postcard = ARouter.getInstance().build(path)
  24. params?.let { postcard.it() }
  25. postcard.navigation(this,requestCode)
  26. }
  27. fun Activity.navigateTo(
  28. path: String,
  29. params: (Postcard.() -> Unit)?,
  30. callback: NavigationCallback?
  31. ) {
  32. val postcard = ARouter.getInstance().build(path)
  33. params?.let { postcard.it() }
  34. postcard.navigation(this, callback)
  35. }
  36. fun Application.navigateTo(
  37. path: String,
  38. params: (Postcard.() -> Unit)? = null
  39. ) {
  40. val postcard = ARouter.getInstance().build(path)
  41. params?.let { postcard.it() }
  42. postcard.navigation(this)
  43. }
  44. /**
  45. * Fragment navigate to
  46. */
  47. fun Fragment.navigateTo(
  48. path: String,
  49. params: (Postcard.() -> Unit)? = null
  50. ) {
  51. requireActivity().navigateTo(path, params)
  52. }
  53. fun Fragment.navigateTo(
  54. path: String,requestCode :Int,
  55. params: (Postcard.() -> Unit)? = null
  56. ) {
  57. val postcard = ARouter.getInstance().build(path)
  58. params?.let { postcard.it() }
  59. requireActivity().navigateTo(path,requestCode,params)
  60. }