Member 14883729 Ответов: 0

Вертикальный видоискатель не работает в kotlin android


Я работал над видео, где люди могли смотреть такие видео, как тик ток. Сначала я сделал это с помощью recyclerview, а позже понял, что мне следует использовать вертикальный Viewpager. Сначала я использовал Viewpager2, но столкнулся с некоторыми проблемами, поэтому заменил его на viewpager1. Но все равно это не работает. Я делаю это в своем фрагменте. Я хочу воспроизводить видео из firebase в вертикальном viewpager с помощью videoview. В Viewpager_Adapter вы можете видеть, что я вызвал еще один макет, который является viewer_page, но когда я запускаю свое приложение, я не получаю этот макет в своем фрагменте


 class ViewpagerAdapter(var context: Context) : PagerAdapter() {
    lateinit var inflater: LayoutInflater
    var contentDTOs: ArrayList<ContentDTOs> = arrayListOf()

    var contentUidList: ArrayList<String> = arrayListOf()

    override fun isViewFromObject(view: View, `object`: Any): Boolean {
        return view == `object` as ConstraintLayout
    }

    override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
        container.removeView(`object`as ConstraintLayout)
    }

    override fun instantiateItem(container: ViewGroup, position: Int): Any {
        inflater = context.getSystemService(container.context.toString())as LayoutInflater
        val view =inflater.inflate(R.layout.viewer_page,container,false)
        val exo : View? = view?.findViewById(R.id.videoviews)

        val path = Uri.parse(contentDTOs[position].videourl)
        val views = view.findViewById<VideoView>(R.id.videoviews)
        views.setVideoURI(path)
        views.requestFocus()
        views.setOnPreparedListener {
            views.start()
        }
        container.addView(view)
        return view
    }

    override fun getCount(): Int {
        return contentDTOs.size
    }
}


Watch_video_fragment

    @SuppressLint("ResourceAsColor")
    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        // Inflate the layout for this fragment
        val fragmentview = inflater.inflate(R.layout.fragment_watch_video, container, false)
        fragmentview.videofragment?.setOnClickListener {
            var fragment = Watch_video()
            activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.frag, fragment)
                ?.commit()

        }
        fragmentview.memefragment?.setOnClickListener {
            var fragment = DetailViewFragment()
            activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.frag, fragment)
                ?.commit()

        }


        firestore = FirebaseFirestore.getInstance()
        uid = FirebaseAuth.getInstance().currentUser?.uid

        fragmentview.videofragment?.setOnClickListener {
            var fragment = Watch_video()
            activity?.supportFragmentManager?.beginTransaction()?.replace(R.id.frag, fragment)
                ?.commit()

        }
//


        fragmentview.vertical_viewpager.adapter = ViewpagerAdapter(requireContext())
        fragmentview.vertical_viewpager.setPageTransformer(false
        ) { page, position ->
            page.rotationY = position * -30 // animation style... change as you want..
        }


Можете ли вы ребята плз помочь мне

Что я уже пробовал:

Я пробовал воспроизводить видео с опорного пункта на видео Просмотр через вертикальную viewpager

Richard Deeming

"Не работающий" это недостаточное описание проблемы для того, чтобы кто-то мог вам помочь.

Нажмите на зеленую ссылку "улучшить вопрос" и обновите свой вопрос, чтобы включить полное описание проблемы. Включите полную информацию о любых ошибках.

Member 14883729

Хорошо сделано. Вы можете проверить, нужна ли вам еще информация.

wseng

Вы добавили в него viewpager fragment_watch_video.xml-что?

Member 14883729

Да

wseng

можете ли вы показать нам, как выглядит ваш xml-файл?

0 Ответов