android–ListView项目中的YouTubePlayerSupportFragment为null

android–ListView项目中的YouTubePlayerSupportFragment为null,第1张

概述我正在尝试在ListView项目中使用YouTubePlayerSupportFragment. ListView位于Activity中的Fragment中.由于存在嵌套片段,我使用getChildFragmentManager()方法尝试从XML布局中查找片段.这是代码.Java的convertView = inflater.inflate(R.layou

我正在尝试在ListVIEw项目中使用YouTubePlayerSupportFragment. ListVIEw位于Activity中的Fragment中.由于存在嵌套片段,我使用getChildFragmentManager()方法尝试从XML布局中查找片段.这是代码.

Java的

convertVIEw = inflater.inflate(R.layout.youtube_post_layout,null);YouTubePlayerSupportFragment youTubePlayerFragment = (YouTubePlayerSupportFragment) getChildFragmentManager().findFragmentByID(R.ID.youtube_vIDeo);if (youTubePlayerFragment == null) {    Log.i("YouTube","player is null");} else {    Log.i("YouTube",youTubePlayerFragment.toString());}

XML

问题是,当我尝试通过执行findFragmentByID()从XML获取它来创建片段时,它返回null,这就是发布到堆栈跟踪的内容.

我正在尝试关注YouTube API示例并对嵌套片段进行更改,但我无法找出导致问题的原因.

最佳答案你采取的整个方法都存在问题.

首先,直接从XML中扩展子片段是not supported.在嵌套片段时,必须使用父片段中的getChildFragmentManager以语音方式添加它们.

其次,即使它起作用(并且在某些情况下可能),你已经夸大了视图但没有将它添加到实际片段的布局中.这就是膨胀方法中的second and third parameters所在. FragmentManager将在其当前布局中查找片段,或在backstack中查找事件,但无法找到以随机XML膨胀的片段,并且永远不会使用.

最后,也是最重要的一点,你永远不应该在ListVIEw中添加片段作为项目.片段期望生命周期与它们所处的活动相关联,而ListVIEw或任何一般的AdapterVIEw将根据需要创建,销毁和回收其子级.

可能的解决方案:

>您的列表中需要多少个视频?如果它们不多,ScrollVIEw linearLayout实际上可能是最简单的解决方案.
>如果你真的需要查看回收,也许你可以在每一行都没有实时视频吗?考虑在您的行中使用YouTubeThumbnailView,然后将用户重定向到另一个活动/在位于布局列表外部的单个YoutubeFragment中加载视频.
>如果您肯定希望直接在列表中的每一行播放视频,则需要在行布局上使用YoutubePlayerView而不是片段.在这种情况下,请仔细阅读文档,因为您需要自己处理视频初始化和查看回收. 总结

以上是内存溢出为你收集整理的android – ListView项目中的YouTubePlayerSupportFragment为null全部内容,希望文章能够帮你解决android – ListView项目中的YouTubePlayerSupportFragment为null所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1140225.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)