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