android - 滚动到另一个页面后,ViewPager 中的视图不可见
问题描述
正如你所看到的,viewpager 在我滚动后是不可见的。
这真的很奇怪。
这是我的 PaggerAdapter 和 onPageChangeListener。
mVideos.forEachIndexed { _, _ ->
mVideoFragments.add(layoutInflater.inflate(R.layout.homepage_videoview_fragment, null))
}
mBinding.wholeScreenViewpager.adapter = object : PagerAdapter() {
override fun instantiateItem(container: ViewGroup, position: Int): Any {
val v = mVideoFragments[position]
container.addView(v)
return v
}
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
container.removeView(`object` as View)
}
override fun getCount(): Int {
return mVideoFragments.size
}
override fun isViewFromObject(view: View, `object`: Any): Boolean {
return view == `object`
}
}
mBinding.wholeScreenViewpager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrollStateChanged(state: Int) {
}
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
(requireActivity() as DeepModeService).reset()
}
override fun onPageSelected(position: Int) {
Timber.tag("homepage").d("selected position $position")
// mPlayer.playRecord(true, mAudios[position], true, isPlay = mPlayer.isPlaying())
}
})
这是我的布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools">
<!-- <com.zhixin.wedeep.homepage.ui.view.CustomVideoView
android:id="@+id/viewpager_custom_video_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
/>-->
<ImageView
android:id="@+id/viewpager_image_view_cover"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/cover_1"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="test"
android:textSize="50dp"
/>
</RelativeLayout>
我的 ViewPager。
class WholeScreenViewPager(context: Context, attrs: AttributeSet?) : ViewPager(context, attrs) {
private val mScreenWidth by lazy {
val displayMetrics = DisplayMetrics()
val windowManager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
windowManager.defaultDisplay.getRealMetrics(displayMetrics)
displayMetrics.widthPixels
}
private val mScreenHeight by lazy {
val displayMetrics = DisplayMetrics()
val windowManager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
windowManager.defaultDisplay.getRealMetrics(displayMetrics)
displayMetrics.heightPixels
}
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
Timber.tag("VIDEO").d("$mScreenWidth $mScreenHeight")
setMeasuredDimension(mScreenWidth, mScreenHeight)
}
}
有任何想法吗?先谢谢了。