Предоставление фрагмента в React Native Android ViewManager
Я пытаюсь обернуть YouTube API Android в качестве компонента пользовательского интерфейса для React Native. Я добился успеха в настройке Android-вещей (получая onInitializationSuccess), однако я не могу понять, как вернуть YouTubePlayerView в мое приложение React Native.
Согласно документам, они рекомендуют использовать YouTubePlayerFragment, если вы не можете расширить YouTubeBaseActivity. Поскольку React Native на Android не использует макеты на основе XML, я попытался создать представления программно. Однако, когда я возвращаю представление обтекания (я пробовал как FrameLayout, но не уверен, что это был правильный выбор), я создал, что это ничего не делает в приложении.
Сейчас я хочу, чтобы все было предельно просто, вот необходимые фрагменты кода:
YouTubeManager.java
public class YouTubeManager extends SimpleViewManager<FrameLayout> implements YouTubePlayer.OnInitializedListener {
// ...
@Override
protected FrameLayout createViewInstance(ThemedReactContext reactContext) {
this.reactContext = reactContext;
FrameLayout view = new FrameLayout(reactContext);
view.setId(View.generateViewId());
FragmentManager fragmentManager = activity.getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
YouTubePlayerFragment fragment = new YouTubePlayerFragment();
fragmentTransaction.add(view.getId(), fragment);
fragmentTransaction.commit();
fragment.initialize("SECRET_KEY", this);
return view;
}
// ...
}
YouTube.js
class YouTube extends Component {
render () {
return <YouTubeAndroid {...this.props}/>;
}
};
var iface = {
name : 'YouTube',
propTypes : {
...View.propTypes
},
};
var YouTubeAndroid = requireNativeComponent('YouTube', iface);
module.exports = YouTube;
index.android.js
var YouTube = require('./YouTube');
class YouTubePlayer extends Component {
render() {
return (
<View style={styles.container}>
<Text>hello</Text>
<YouTube />
</View>
);
}
}
Любая помощь будет очень признательна, спасибо!