Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android layout 无法在片段中添加多个布局_Android Layout_Kotlin_Android Fragments - Fatal编程技术网

Android layout 无法在片段中添加多个布局

Android layout 无法在片段中添加多个布局,android-layout,kotlin,android-fragments,Android Layout,Kotlin,Android Fragments,我一直在开发一个应用程序,人们可以在其中观看tik tok之类的视频。起初我是用recyclerview制作的,后来我意识到我应该使用垂直Viewpager。然后我使用了Viewpager2,但我遇到了一些问题,所以我用viewpager1替换了它。但它仍然不起作用。我在我的片段中做这件事。我想使用videoview在垂直viewpager中播放firebase的视频。在Viewpager_Adapter中,你可以看到我调用了另一个布局,即查看器_页面,但当我运行我的应用程序时,我在片段中没有得

我一直在开发一个应用程序,人们可以在其中观看tik tok之类的视频。起初我是用recyclerview制作的,后来我意识到我应该使用垂直Viewpager。然后我使用了Viewpager2,但我遇到了一些问题,所以我用viewpager1替换了它。但它仍然不起作用。我在我的片段中做这件事。我想使用videoview在垂直viewpager中播放firebase的视频。在Viewpager_Adapter中,你可以看到我调用了另一个布局,即查看器_页面,但当我运行我的应用程序时,我在片段中没有得到该布局

视页雷达

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
    }
}
@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..
        }