Невозможно добавить несколько макетов во фрагмент
Я работал над приложением, где люди могли смотреть такие видео, как tik tok. Сначала я сделал это с помощью recyclerview, а позже понял, что мне следует использовать вертикальный Viewpager. Затем я использовал Viewpager2, но столкнулся с некоторыми проблемами, поэтому заменил его на viewpager1. Но все равно это не работает. Я делаю это в своем фрагменте. Я хочу воспроизводить видео из firebase в вертикальном viewpager с помощью videoview. В Viewpager_Adapter вы можете видеть, что я вызвал еще один макет, который является viewer_page, но когда я запускаю свое приложение, я не получаю этот макет в своем фрагменте.
ViewpagerAdapter
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.. }
Что я уже пробовал:
Я пытаюсь вызвать 2 макета во фрагменте с помощью адаптера