android view

React Native 已经封装了大部分最常见的组件,譬如ScrollViewTextInput,但不可能封装全部组件。

在这个例子里,我们来看看为了让 JavaScript 中可以使用 ImageView,需要做哪些准备工作。

 

原生视图需要被一个ViewManager的派生类(或者更常见的,SimpleViewManager的派生类)创建和管理。一个SimpleViewManager可以用于这个场景,是因为它能够包含更多公共的属性,譬如背景颜色、透明度、Flexbox 布局等等。

 
  1. 创建一个 ViewManager 的子类。
    1. 实现createViewInstance方法。
      1. 导出视图的属性设置器:使用@ReactProp(或@ReactPropGroup)注解。

        1. 把这个视图管理类注册到应用程序包的createViewManagers里。
          1. 实现 JavaScript 模块。
          2. ...
            
            public class ReactImageManager extends SimpleViewManager<ReactImageView> {
            
              public static final String REACT_CLASS = "RCTImageView";
              ReactApplicationContext mCallerContext;
            
              public ReactImageManager(ReactApplicationContext reactContext) {
                mCallerContext = reactContext;
              }
            
              @Override
              public String getName() {
                return REACT_CLASS;
              }
            

              

            @Override
            public ReactImageView createViewInstance(ThemedReactContext context) {
            return new ReactImageView(context, Fresco.newDraweeControllerBuilder(), null, mCallerContext);
            }

            1. @Override
              public ReactImageView createViewInstance(ThemedReactContext context) {
              return new ReactImageView(context, Fresco.newDraweeControllerBuilder(), null, mCallerContext);
              }

                1. 4. Register the ViewManager

                   
posted @ 2022-12-19 01:18  xiamaocheng  阅读(57)  评论(0编辑  收藏  举报