litho

作者: XShock | 来源:发表于2018-10-10 22:50 被阅读51次

持续更新中。。。。

简单介绍
  • litho是一个用于在Android上构建高效用户界面的声明性框架,它允许你通过基于Java注释的简单功能API编写高度优化的Android视图(能够有效地减少过度绘制)。它主要用于实现基于RecyclerView的复杂可滚动UI。

  • 使用Litho,你可以根据组件构建UI,而不是直接与传统的Android视图交互,在视图中体现为每一小块均为component,litho用View去承载Component,最终这个Component会被绘制在View上。

Sections
  • Litho主要是一个渲染API,但是高效的渲染UI只是编写高性能界面所面临挑战的一部分,如果你仔细查看你的设备,它们中的很多都是围绕一个可滚动的界面,这个界面可以获取并展示数据。使用RecyclerView构建列表时,必须考虑如何使适配器与数据保持同步,并通知适配器任何更改。这通常需要大量的手动索引处理,并且会产生有状态的,强制性的代码,当产品增长时将难以维护。

  • Section构建在Litho之上,为编写高度优化的列表界面提供声明性和可组合的API,虽然Litho Components用于显示UI,但Sections是一种构造数据并将其转换为Litho组件的方法。

image.png
事件处理

litho component之间的通信是通过OnEvent来实现的,事件声明为带有@Event注解的POJO类。按照惯例我们使用以Event为后缀的类名,events并不是在LayoutSpec或者在MountSpec中声明的内部类,这是设计规范,并且events可以在多个Component之间进行通信。

@Event
public class ColorChangedEvent {
      public int color;
}  

在这个例子中,我们假定有个ColorComponent的Component,为了表明ColorComponent能够分发ColorChangedEvent事件,ColorComponentSpec必须用该信息进行注解,这是通过@MountSpec和@LayoutSpec注释的events参数完成的。一个Component可以通过注解声明来表示它可以发送多个events.

@LayoutSpec(events = { ColorChangedEvent.class })
class ColorComponentSpec {
  ...
  @OnCreateLayout
  static Component onCreateLayout(
      Context c,
      @Prop int color) {
    ...
    EventHandler handler = ColorComponent.getColorChangedEventHandler(c);
    if (handler != null) {
      ColorComponent.dispatchColorChangedEvent(
          colorChangedHandler,
          color);
    }
    ...
  }
}

相关文章

  • Litho粗读

    Litho 是什么 Litho官网Litho是Facebook推出的一套高效构建Android UI的声明式框架,...

  • Litho 资料合集

    Litho 官方文档https://fblitho.com/Litho Githubhttps://github....

  • Litho学习--Litho 简介

    背景介绍 Litho 是 FaceBook 2017年上半年开源的声明式UI渲染框架。 为什么 Facebook ...

  • litho

    持续更新中。。。。 简单介绍 litho是一个用于在Android上构建高效用户界面的声明性框架,它允许你通过基于...

  • 手把手教你Android Litho UI框架---(一)入门篇

    1.什么是Litho? Litho是Facebook推出的一套高效构建Android UI 的声明式框架,主要 目...

  • litho对flexShrink的理解和使用

    今天遇到一个问题,在使用litho来构建litho布局的时候,一行有三个元素,中间那个元素通过flex=1来把中间...

  • Litho初步使用

    。。。

  • Litho学习--Hello World

    1. 在build.gradle 文件中添加Litho依赖 再加入Sections部分的依赖: 2. 初始化 So...

  • Litho 学习记录(1)

    根据官方文档 gradle导入(准备工作) PS:Android Support需要更新到25.3.1testCo...

  • Litho异步渲染详解

    背景 Facebook又开源了一个很不错的东东,有必要详细了解下,不过先要铺垫一下。 Yoga yoga本是Fac...

网友评论

      本文标题:litho

      本文链接:https://www.haomeiwen.com/subject/wktvaftx.html