Реагируй Родной.Нативный компонент Android не отображается - PullRequest
0 голосов
/ 01 марта 2019

Я хочу добавить компонент из Android в React Native.Но он не рендерится и не имеет размеров.Как я могу это исправить и отобразить компонент?Кодовые классы для подключения компонента.Я использовал руководства и примеры других людей.

UPD: Произошла ошибка: REACT_CLASS = "RCTImageView";Осталось от остальных попыток.Вернулся к CustomView - не помогло.

CustomViewManager.java:

public class CustomViewManager extends SimpleViewManager<TextView> {

public static final String REACT_CLASS = "CustomView";

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

@Override
public TextView createViewInstance(ThemedReactContext context) {

    TextView tv = new TextView(context);
    tv.setText("Текст");
    tv.setTextColor(Color.BLACK);
    tv.setWidth(100);
    tv.setHeight(100);
    return tv;

  }
}

CustomViewPackage.java:

public class CustomViewPackage implements ReactPackage {

@Override
public List<ViewManager>
createViewManagers(ReactApplicationContext reactContext) {
    return Arrays.<ViewManager>asList(
            new CustomViewManager()
    );
}

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

}

MainApplication.java:

@Override
protected List<ReactPackage> getPackages() {
  return Arrays.<ReactPackage>asList(
      new MainReactPackage(),
      new CustomViewPackage()
  );
}

CustomTextView.js:

import React from 'react';
import {
   requireNativeComponent
} from 'react-native';

module.exports = requireNativeComponent('CustomView');

App.js:

export default class App extends Component {
render() {
  return (
    <View 
      style={ styles.container }
    >
      <CustomView/>
    </View>
  );
}
}

1 Ответ

0 голосов
/ 17 марта 2019

Необходимо было установить размеры flex.

В компоненте CustomView вам нужно было передать style = {{flex: 1}}

...