美文网首页Litho
Litho学习--Hello World

Litho学习--Hello World

作者: 言者无知_n4c | 来源:发表于2018-05-20 20:17 被阅读38次

    1. 在build.gradle 文件中添加Litho依赖

    dependencies {
        // ...
        // Litho
        implementation 'com.facebook.litho:litho-core:0.14.0'
        implementation 'com.facebook.litho:litho-widget:0.14.0'
        compileOnly 'com.facebook.litho:litho-annotations:0.14.0'
        annotationProcessor 'com.facebook.litho:litho-processor:0.14.0'
        
        // SoLoader
        implementation 'com.facebook.soloader:soloader:0.2.0'
        
        // For integration with Fresco
        implementation 'com.facebook.litho:litho-fresco:0.14.0'
        
        // For testing
        testImplementation 'com.facebook.litho:litho-testing:0.14.0'
        
    }
    

    再加入Sections部分的依赖:

    dependencies {
        // Sections
        implementation 'com.facebook.litho:litho-sections-core:0.14.0'
        implementation 'com.facebook.litho:litho-sections-widget:0.14.0'
        compileOnly 'com.facebook.litho:litho-sections-annotations:0.14.0'
        annotationProcessor 'com.facebook.litho:litho-sections-processor:0.14.0'   
    }
    

    2. 初始化 SoLoader

    Litho中依赖于SoLoader加载底层的布局引擎Yoga.

    public class MyApplication extends Application {
    
      @Override
      public void onCreate() {
        super.onCreate();
    
        SoLoader.init(this, false);
      }
    }
    

    3. 在Activity中加入Litho中预定义的Text组件

    public class HelloLithoActivity extends AppCompatActivity {
        private static final String TAG = HelloLithoActivity.class.getSimpleName();
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setTitle(TAG);
    
            final ComponentContext c = new ComponentContext(this);
    
            final LithoView lithoView = LithoView.create(
                    this /* context */,
                    Text.create(c)
                            .text("Hello, World!")
                            .textSizeDip(50)
                            .build());
    
            setContentView(lithoView);
        }
    }
    

    解释:

    LithoView 是用来渲染组件的 Android 中的 ViewGroup,它是 Litho 中的组件与 Android 系统中的 View 的桥梁。 例子中 Activity 的 contentView 设置成 LithoView ,LithoView 中展示了一个 Text 组件。

    Text 是 Litho 中的一个核心组件,在这个包里,com.facebook.litho.widget
    它有 text 和 textSize 属性,在 Litho 中叫做 Prop ,注意这里的 Text 组件是由一个叫做 TextSpec 的类生成的,同时生成了构造器方法用于初始化 Text 组件的属性。
    Text 组件这里作为唯一的子组件添加到 LithoView 中,当然也可以一个根组件带着几个子组件的形式,待会会讲到,这样,一个 Hello World 就搞定了。

    看到的效果如下:


    Hello World

    相关文章

      网友评论

        本文标题:Litho学习--Hello World

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