React NativeのUIコンポーネントとしてYouTube Android APIをラップしようとしています。私はAndroidの設定(onInitializationSuccessを取得)に成功しましたが、YouTubePlayerViewをReact Nativeアプリに戻す方法がわかりません。React Native Android ViewManagerでフラグメントを公開する
YouTubeBaseActivityを拡張できない場合は、ドキュメントによれば、YouTubePlayerFragmentの使用をおすすめします。 React Native for 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>
);
}
}
ご協力いただきありがとうございます。
YouTubeコンポーネントの明示的な高さと幅の設定は役に立ちますか? –
@agent_huntええ、私はそれに固定高さ/幅とbackgroundColorを与えてみました。空のビューhttps://www.dropboxをレンダリングするだけです。com/s/3obfjs6agcux3z2/Screenshot%202016-03-26%2017.10.55.png?dl = 0 – stan229
問題は解決していますか?あなたはフラグメントをレンダリングすることができましたか? – lschmierer