riku
2025-07-02 3013b813e5df6977c0be921928f73b1a3adde290
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package cn.flightfeather.thirdappmodule.adapter
 
import android.content.Context
import android.net.Uri
import android.support.v4.view.PagerAdapter
import android.view.View
import android.view.ViewGroup
import com.bumptech.glide.Glide
import com.github.chrisbanes.photoview.PhotoView
import java.io.File
 
/**
 * @author riku
 * Date: 2019/10/18
 */
class PhotoPageAdapter(private val paths: List<String>, private val context: Context, private val onViewClick: (view: View) -> Unit) : PagerAdapter() {
    private val photoViewList = mutableListOf<PhotoView>()
 
    init {
        repeat(paths.size) {
            photoViewList.add(PhotoView(context).apply {
                setOnClickListener { view -> onViewClick(view) }
            })
        }
    }
 
    override fun isViewFromObject(p0: View, p1: Any): Boolean = p0 == p1
 
    override fun getCount(): Int = paths.size
 
    override fun instantiateItem(container: ViewGroup, position: Int): Any {
        Glide.with(container)
            .load(paths[position])
            .into(photoViewList[position])
        container.addView(photoViewList[position])
 
        return photoViewList[position]
    }
 
    override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
        container.removeView(photoViewList[position])
//        photoViewList[position] = PhotoView(context).apply {
//            setOnClickListener { onViewClick() }
//        }
    }
}