通过 xml 加载 youtube 视频不会关闭 android 中的默认进度条

Posted

技术标签:

【中文标题】通过 xml 加载 youtube 视频不会关闭 android 中的默认进度条【英文标题】:loading youtube videos through xml do not dismiss default progress bar in android 【发布时间】:2019-12-29 19:43:24 【问题描述】:

我创建了一个应用程序,我从后端获取 youtube id,然后将其附加到 webview 以在我的 recylerview 中显示 youtube 视频列表。一切工作都很好,但唯一的问题是,即使在加载所有视频后,我也不会从哪里连续显示默认的进度条。我想关闭这个默认进度条。

这是适配器的代码

class YoutubeAdapter(internal var context: Context, internal var youtubevideosList: List<YoutubeModel>, recyclerView: RecyclerView) : RecyclerView.Adapter<YoutubeAdapter.MViewHolder>() 


    internal var recyclerView: RecyclerView? = null
    internal var progressBar:ProgressBar?=null

    init 
        this.recyclerView = recyclerView
        this.progressBar=ProgressBar(context)
    

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MViewHolder 
        val view = LayoutInflater.from(context).inflate(R.layout.youtube_row, parent, false)

        return MViewHolder(view)
    

    override fun onBindViewHolder(holder: MViewHolder, position: Int) 


        //val youtubeid = "Wn8-CsL_lg4"

        val youtubeid = youtubevideosList.get(position).getYoutubeID()
        //val youtubelink = "<iframe width=\"100%\" height=\"100%\" src=\"https://www.youtube.com/embed/"+youtubeid+"\" frameborder=\"0\" allowfullscreen></iframe>"
        val youtubelink1 = "<iframe width=\"100%\" height=\"100%\" src=\"https://www.youtube.com/embed/$youtubeid\" frameborder=\"0\" allowfullscreen></iframe>"

        holder.youTubePlayerView.loadData(youtubelink1, "text/html", "utf-8")
        //holder.descTextview.text=youtubevideosList.get(position).getVideoDesc()


    

    override fun getItemCount(): Int 
        return youtubevideosList.size
    



    inner class MViewHolder(internal var view: View) : RecyclerView.ViewHolder(view) 

        internal var youTubePlayerView: WebView
        internal var descTextview: TextView
        internal var progressBar:ProgressBar?=null

        init 

            youTubePlayerView = view.findViewById<View>(R.id.webVideoView) as WebView
            descTextview = view.findViewById<View>(R.id.describtion_tv) as TextView

            youTubePlayerView.getSettings().setjavascriptEnabled(true)
            progressBar= ProgressBar(context)
           /* youTubePlayerView.setWebChromeClient(object : WebChromeClient() 

            )*/


        
    
 

我没有在任何地方声明我的进度条,但它是从哪里持续显示的?

【问题讨论】:

【参考方案1】:

在您声明的 YoutubeAdapter 类和 MViewHolder 内部类中,它们初始化了一个进度条。为什么你说你没有?

在 YoutubeAdapter 类中删除:

internal var progressBar:ProgressBar?=null

this.progressBar=ProgressBar(context)

在 MViewHolder 类中删除:

internal var progressBar:ProgressBar?=null

progressBar=ProgressBar(context)

【讨论】:

以上是关于通过 xml 加载 youtube 视频不会关闭 android 中的默认进度条的主要内容,如果未能解决你的问题,请参考以下文章

如何为 YouTube 视频添加启动画面/占位符图像 [关闭]

模态关闭时停止 youtube 视频

创建YouTube视频下载器 [关闭]

加载多个嵌入式 Youtube 视频时页面加载性能更好?

Chromecast + Youtube 嵌入 + HTML5 视频标签 = 错误

通过 loadNibNamed() 从 xib 加载按钮从未调用