首页 > 解决方案 > 滚动到另一个页面后,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)
    }
}

有任何想法吗?先谢谢了。

标签: androidandroid-viewpager

解决方案


推荐阅读