Post rendering

Custom post rendering

UIKit provides default renderers for the core data types, text, image, and file. For custom post rendering, a map of data type and renderer can be registered and UIKit will refer to this map while rendering post component.

Usage

// To provide a custom renderer, implement an AmityPostRenderer
val customViewHolder = object : AmityPostRenderer {

    // Specify the dataType to be rendered by this renderer
    override fun getDataType(): String = "myapp.customtype"

    // Provide a layout of your viewHolder
    override fun getLayoutId(): Int = R.layout.custom_post

    // Provide a viewHolder that is subclassed from AmityPostContentViewHolder
    override fun createViewHolder(
        view: View
    ): AmityPostContentViewHolder {
        return MyCustomViewHolder(view)
    }

    // Choose whether to have a post header
    override fun enableHeader(): Boolean {
        return true 
    }

    // Choose whether to have a post footer 
    override fun enableFooter(): Boolean {
        return false
    }
}
    
 // Register the custom renderer    
AmityUIKitClient.socialUISettings.registerPostRenderers(listOf(customViewHolder))   

Last updated