首页 > 解决方案 > 通过 xml 加载 youtube 视频不会关闭 android 中的默认进度条

问题描述

我创建了一个应用程序,我从后端获取 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() {

            })*/


        }
    }
} 

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

标签: androidxmlkotlinwebviewandroid-youtube-api

解决方案


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

在 YoutubeAdapter 类中删除:

internal var progressBar:ProgressBar?=null

this.progressBar=ProgressBar(context)

在 MViewHolder 类中删除:

internal var progressBar:ProgressBar?=null

progressBar=ProgressBar(context)

推荐阅读