Skip to content

Latest commit

 

History

History
45 lines (32 loc) · 1.97 KB

uinspector-optional-custom-view.md

File metadata and controls

45 lines (32 loc) · 1.97 KB

Inspect custom view properties

Using Java SPI mechanism, You can intergrate your custom view/LayoutParams properties into Uinspector. Such as Uinspecor-Fresco / Uinspector-Lottie.

  1. Create a class implements the ViewPropertiesParserService

    package com.your.pack
    
    import com.huya.mobile.uinspector.impl.properties.view.ViewPropertiesParser
    import com.huya.mobile.uinspector.impl.properties.view.ViewPropertiesParserService
    
    class YourService : ViewPropertiesParserService {
    
        override fun tryCreate(v: View): ViewPropertiesParser<out View>? {
            if (v is YourCustomView) {
                return YourCustomViewParser(v)
            }
            //Just return null if you don't want to handle this view
            return null
        }
    }
  2. Create a class extends the ViewPropertiesParser

    import android.view.View
    import com.huya.mobile.uinspector.impl.properties.view.ViewPropertiesParser
    import com.yy.mobile.whisper.Output
    
    class YourCustomViewParser(view: YourCustomView) : ViewPropertiesParser<YourCustomView>(view) {
    
        override fun parse(@Output props: MutableMap<String, Any?>) {
            super.parse(props)
            props["key"] = value
        }
    }
  3. Create a file named com.huya.mobile.uinspector.impl.properties.view.ViewPropertiesParserService in the directory src/main/resources/META-INF/services. Write down your service class name YourService in the file.

    See the demo: /src/main/resources/META-INF/services/

  4. OK! Now run your app and click the YourCustomView on screen.