Смахивание ViewPage трудно в некоторых устройствах Android - PullRequest
0 голосов
/ 24 мая 2019

У меня есть видовой пейджер для слайдера изображений в моей деятельности У меня проблема при попытке пролистывания на другую страницу на каком-либо устройстве 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 голосов
/ 24 мая 2019

Попробуйте следующее,

Сначала вместо изображений загрузите любую случайную строку или целое число и проверьте, все ли еще сильно прокручивается.Если он работает нормально, это означает, что изображения тяжелые для загрузки.

Если изображения тяжелые, проверьте следующее:

  1. Попробуйте отформатировать изображения в WEBP и загрузить их.Они очень эффективны.Если это невозможно, убедитесь, что изображения имеют формат не ниже .png, а не .JPG

Более эффективный способ Использование горизонтального вида рециркулятора.

Вотучебник: https://demonuts.com/android-horizontal-recyclerview/

0 голосов
/ 24 мая 2019

Я не знаю, сколько у вас изображений и каковы их размеры, я однажды столкнулся с этой проблемой с изображением в viewpager.

В моем случае у меня более 10 изображений, и каждое изображение имеет вес более 800 КБ, и я проверяю эту проблему, и она действительно работает нормально, если я изменил OffscreenPageLimit на 1 страницу, и я попытался уменьшить размер изображения!

viewPager.setOffscreenPageLimit(1);
...