Kotlin DSL for Litho ComponentLayout Builders.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src/main/kotlin/com/makeramen/litho
.gitignore
LICENSE
README.md

README.md

Litho Kotlin

Kotlin DSL for Litho Component.Builders.

Usage

Import

  1. Copy Litho.kt into your project under com/makeramen/litho.
  2. Add any definitions for your own custom components, e.g.
    @LithoMarker
    fun myComponent(c: ComponentContext, init: MyComponent.Builder.() -> Unit) =
        componentBuilder(c, MyComponent::create, init)
    
    @LithoMarker
    fun ChildHolder.myComponent(c: ComponentContext, init: MyComponent.Builder.() -> Unit) =
        componentBuilder(c, MyComponent::create, init)
  3. Remove any definitions you don't want to use, like recyclerCollectionComponent if you're not using Sections.

I may look into a proper Maven Central release in the future, but it's just one file, and extensibility for custom components is the best part.

Example

@LayoutSpec
object ExampleComponentSpec {

  @OnCreateLayout
  fun onCreateLayout(c: ComponentContext): Component {
    return column(c) {               // Init root Components by passing in the context
      paddingDip(YogaEdge.ALL, 8f)   // Attributes can be defined inline within the lambda
      children {                     // Add children using a children element
        text {                       // ComponentBuilders within a children element don't need a context
          text("TWO")
          textSizeDip(16f)
        }
        text {
          text("THREE")
          textSizeDip(16f)
        }
      }
    }
  }
}