在某些android设备中很难进行ViewPage滑动

时间:2019-05-24 15:57:01

标签: java android kotlin android-viewpager swipe

我的活动中有一个用于图像滑块的查看寻呼机 当我尝试在某些Android设备(例如xiaomim,note 8设备)中滑动到另一个页面时,出现问题,viewPager的移动变得沉重

这是我的代码:

override fun isViewFromObject(view: View, p1: Any): Boolean {
    return view == p1
}


//
override fun instantiateItem(container: ViewGroup, position: Int): Any {
    val itemView: View = LayoutInflater.from(container.context).inflate(R.layout.image_slider_view, container, false)
    val mSliderImage: ImageView = itemView.findViewById(R.id.slider_image)
    Glide.with(itemView).load(images[position]).into(mSliderImage)


    itemView.setOnClickListener {
        if (clickable) {
            val intent = Intent(itemView.context, ImageSliderActivity::class.java)
            intent.putExtra("slider", images)
            intent.putExtra("position", position)
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
                val activityOptions = ActivityOptions.makeSceneTransitionAnimation(activity)
                itemView.context.startActivity(intent, activityOptions.toBundle())
            } else {
                itemView.context.startActivity(intent)
            }
        }
    }
    container.addView(itemView)
    Util.rotateViewsIfRTL(itemView)
    return itemView
}


override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
    (container as ViewPager).removeView(`object` as View)
}

override fun getCount(): Int {
    return images.count()
}

2 个答案:

答案 0 :(得分:0)

我不知道您拥有多少张图像,以及它们的大小,我曾经在viewpager中遇到图像问题。

在我的情况下,我有10张以上的图像,每张图像的权重都超过800kb,我检查了此问题,如果我将OffscreenPageLimit更改为1页,并且尝试减小图像的尺寸,它确实可以正常工作!

viewPager.setOffscreenPageLimit(1);

答案 1 :(得分:0)

尝试以下操作,

首先,而不是图像,加载任何随机字符串或整数,并测试它是否仍然滚动过多。如果工作正常,则意味着图像很重。

如果图像较重,请检查以下内容:

  1. 尝试对图像进行WEBP格式化并加载它们。它们非常有效。如果无法做到,请确保图像至少为.png格式,而不是.JPG

更有效的方式 使用卧式回收机视图。

以下是教程:https://demonuts.com/android-horizontal-recyclerview/