在react-native中导入android库时,如何在模块中重用在视图管理器中创建的视图?

时间:2019-04-19 08:54:28

标签: android react-native

我要在react-native中导入一个本地android库。我有一个显示屏幕的SimpleViewManager,我想创建一个ReactContextBaseJavaModule来启动一个可以更改屏幕的函数。 如何在我的模块和视图管理器中获得相同的视图?

在纯android系统中,该库运行良好,并提供了一个视图和一个将创建的视图作为参数的函数。我的视图管理器已正确显示,但模块无法正常工作。

有MyModule.java:

public class MyModule extends ReactContextBaseJavaModule{

  public MyModule(ReactApplicationContext reactContext) {
    super(reactContext);
  }

  @Override
  public String getName() {...}

  @Override
  public Map<String, Object> getConstants() {...}

  @ReactMethod
  public void MyFunction() {
    LibraryFunction(LibraryView); // There I want the LibraryView created in MyViewManager
  }
}

有MyViewManager.java

public class MyViewManager extends SimpleViewManager<LibraryView>{

  @Override
  public String getName() {...}

  @Override
  protected LibraryView createViewInstance(ThemedReactContext reactContext) {
    return new LibraryView(reactContext);
  }
}

有MyPackage.java

public class MyPackage implements ReactPackage {

  @Override
  public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
    List<ViewManager> ViewManagers = new ArrayList<>();
    ViewManagers.add(new MyViewManager());
    return ViewManagers;
  }

  @Override
  public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
    List<NativeModule> modules = new ArrayList<>();
    modules.add(new MyModule(reactContext));
    return modules;
  }
}

我想将LibraryFunction与MyViewManager中创建的LibraryView一起使用,但现在无法获取。

感谢您的帮助。

0 个答案:

没有答案