Tôi đang cố gắng bao bọc API Android của YouTube dưới dạng Thành phần giao diện người dùng cho React Native. Tôi đã thành công trong cấu hình Android của mọi thứ (nhận được onInitializationSuccess), tuy nhiên tôi không thể tìm hiểu cách tải YouTubePlayerView về ứng dụng React Native của mình.Hiển thị Fragment trong React Native Android ViewManager
Theo tài liệu, họ khuyên bạn nên sử dụng YouTubePlayerFragment nếu bạn không thể mở rộng YouTubeBaseActivity. Vì React Native trên Android không sử dụng các bố cục dựa trên XML, tôi đã cố tạo các khung nhìn theo chương trình. Tuy nhiên, khi tôi trả về dạng xem gói (tôi đã thử làm FrameLayout, nhưng không chắc đó có phải là lựa chọn đúng hay không), tôi đã tạo nó không hiển thị bất cứ thứ gì trên ứng dụng.
tôi tìm cách để giữ cho nó cực kỳ đơn giản cho bây giờ, ở đây là các bước cần thiết của mã:
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>
);
}
}
Bất kỳ trợ giúp sẽ được thực sự đánh giá cao, cảm ơn bạn!
Cài đặt chiều cao và chiều rộng rõ ràng trên thành phần youtube có giúp không? –
@agent_hunt vâng, tôi đã thử cho nó một chiều cao cố định/chiều rộng và backgroundColor. Nó chỉ hiển thị một khung nhìn trống rỗng https: //www.dropbox.com/s/3obfjs6agcux3z2/Ảnh chụp màn hình% 202016-03-26% 2017.10.55.png? dl = 0 – stan229
Sự cố đã được giải quyết chưa? Bạn đã quản lý để hiển thị Fragment chưa? – lschmierer