Sfoglia il codice sorgente

引导支持显示前的操作

DoggyZhang 1 settimana fa
parent
commit
9342391f05

+ 1 - 1
frame/bom/build.gradle

@@ -6,7 +6,7 @@ plugins {
 ext {
     GROUP_ID = 'com.wenext.android'
     ARTIFACT_ID = 'frame-bom'
-    VERSION = '6.2.19'
+    VERSION = '6.2.20'
 }
 
 dependencies {

+ 1 - 1
frame/guide/build.gradle

@@ -7,7 +7,7 @@ plugins {
 ext {
     GROUP_ID = 'com.wenext.android'
     ARTIFACT_ID = 'frame-guide'
-    VERSION = '6.0.1'
+    VERSION = '6.0.2'
 }
 
 apply from: "../../publish.gradle"

+ 5 - 0
frame/guide/src/main/java/com/adealink/frame/guide/core/GuideController.kt

@@ -24,6 +24,7 @@ class GuideController {
     private var guideLayout: GuideLayout? = null
     private var isShowing = false
 
+    var onBeforeShowPageListener: ((String?) -> Unit)? = null //引导页显示前
     var pageShowListener: ((String?) -> Unit)? = null //每个引导页面展示的时候回调
     var pageDismissListener: ((String?) -> Unit)? = null //每个引导页面消失的时候回调
 
@@ -44,6 +45,7 @@ class GuideController {
         delayShowNext = guideParams.delayShowNext
         alwaysShow = guideParams.alwaysShow
         groupLabel = guideParams.groupLabel
+        onBeforeShowPageListener = guideParams.onBeforeShowPageListener
         pageShowListener = guideParams.pageShowListener
         pageDismissListener = guideParams.pageDismissListener
     }
@@ -110,6 +112,8 @@ class GuideController {
     }
 
     private fun showGuidePageInner(guidePage: GuidePage) {
+        onBeforeShowPageListener?.invoke(guidePage.label)
+
         //当前guidePage无效或者拦截,停止显示
         if (!guidePage.isValid(parentView!!) || guidePage.guideInterceptor?.invoke() == true) {
             Log.d(TAG, "showGuidePageInner, return for guidePage isInvalid or Intercept")
@@ -183,6 +187,7 @@ class GuideController {
         var parentViewId: Int? = null
         var baseViewId: Int? = null
 
+        var onBeforeShowPageListener: ((String?) -> Unit)? = null //引导页显示前
         var pageShowListener: ((String?) -> Unit)? = null
         var pageDismissListener: ((String?) -> Unit)? = null
     }

+ 10 - 0
frame/guide/src/main/java/com/adealink/frame/guide/core/NewbieGuide.kt

@@ -81,6 +81,16 @@ object NewbieGuide {
             return this
         }
 
+        /**
+         * 引导页面展示前回调
+         *
+         * @param pageShowListener 参数为 [GuidePage.label]
+         */
+        fun setBeforeShowPageListener(onBeforeShowPageListener: ((String?) -> Unit)?): Builder {
+            params.onBeforeShowPageListener = onBeforeShowPageListener
+            return this
+        }
+
         /**
          * 引导页面展示时回调
          *