javascript - 将原生 UI 集成到 React Native 中?

标签 javascript android react-native

我在 React Native 中使用原生 Android ProgressBar 但发生了一些错误。这是我的 ProgressBarViewManager 代码:

public class ProgressBarViewManager extends 
SimpleViewManager<ProgressBar> {

public static final String REACT_CLASS = "ProgressBar";

@Override
public String getName() {
    return REACT_CLASS;
}

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

@ReactProp(name = "progress", defaultInt = 0)
public void setProgress(ProgressBar view, int progress) {
    view.setProgress(progress);
}

@ReactProp(name = "indeterminate", defaultBoolean = false)
public void setIndeterminate(ProgressBar view, boolean indeterminate) {
    view.setIndeterminate(indeterminate);
}
}

这是我的 ProgressBarPackage 代码

public class ProgressBarPackage implements ReactPackage {
@Override
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
    return Collections.emptyList();
}

@Override
public List<Class<? extends JavaScriptModule>> createJSModules() {
    return Collections.emptyList();
}

@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
    return Collections.<ViewManager>singletonList(
            new ProgressBarViewManager()
    );
}
}

我还在MainApplication.java中添加了new ProgressBarPackage(),但运行后出现错误:

**Task :app:compileDebugJavaWithJavac FAILED
/home/user/React-native-Projects/AndroidComponentIntegeration/android/app/src/main/java/com/androidcomponentintegeration/ProgressBarPackage.java:19: error: method does not override or implement a method from a supertype
    @Override**

最佳答案

ReactPackage类不再(从 this change 开始,包含在 React Native 0.47 中)定义 createJSModules 方法,因此您不再需要提供它的实现。只需删除该方法(包括其 @Override 注释):

public class ProgressBarPackage implements ReactPackage {
  @Override
  public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
      return Collections.emptyList();
  }

  @Override
  public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
    return Collections.<ViewManager>singletonList(
            new ProgressBarViewManager()
    );
  }
}

关于javascript - 将原生 UI 集成到 React Native 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53154177/

相关文章:

javascript - 实习生功能测试 - 按顺序单击一组按钮

javascript - 改变babylon.js中 Material 的颜色

javascript - 每个 block 内无法访问 Handlebars 变量

android - 自定义 Android 操作系统构建

ios - 仅在发布版本中,clang : error: no such file or directory: '/Users/vagrant/Library/Developer/Xcode/DerivedData

javascript - 如何从 Google Firebase 函数中失败的 Promise 返回自定义错误消息?

android - MediaMuxer 错误 "Failed to stop the muxer"

android - 当用户点击指向谷歌地图的链接时,如何提供我的程序作为选择?

javascript - React Native如何处理Cannot read property 'undefined' of undefined

android - 在 React Native 中按下 Android 后退按钮时如何防止键盘关闭?