package com.driver.igotrip.ui.main
|
|
import android.content.Context
|
import android.content.Intent
|
import android.widget.TextView
|
import androidx.core.view.isVisible
|
import androidx.viewpager2.widget.ViewPager2
|
import com.driver.igotrip.R
|
import com.driver.igotrip.base.MyBaseActivity
|
import com.driver.igotrip.ui.adapter.ShowPictureAdapter
|
|
//显示图片页
|
class ShowPictureActivity : MyBaseActivity() {
|
private val title by lazy { intent.getStringExtra("title") }
|
private val list by lazy { intent.getStringArrayListExtra("list") }
|
private val index by lazy { intent.getIntExtra("index", 0) }
|
private val adapter by lazy { ShowPictureAdapter() }
|
private val tvBack by lazy { findViewById<TextView>(R.id.tv_back) }
|
private val tvTitle by lazy { findViewById<TextView>(R.id.tv_title) }
|
private val viewPager by lazy { findViewById<ViewPager2>(R.id.viewPager) }
|
private val tvCount by lazy { findViewById<TextView>(R.id.tv_count) }
|
|
companion object {
|
//获取跳转此页面intent
|
fun getIntent(
|
context: Context,
|
title: String,
|
list: ArrayList<String>,
|
index: Int = 0
|
): Intent {
|
return Intent(context, ShowPictureActivity::class.java).apply {
|
putExtra("title", title)
|
putStringArrayListExtra("list", list)
|
putExtra("index", index)
|
}
|
}
|
}
|
|
override fun setContentView() {
|
setContentView(R.layout.activity_show_picture)
|
}
|
|
override fun initView() {
|
setBlcakShow(false)
|
setFullScreenMode(true)
|
tvTitle.text = title
|
viewPager.adapter = adapter
|
viewPager.offscreenPageLimit = list?.size ?: 1
|
viewPager.currentItem = index
|
adapter.setData(list ?: emptyList())
|
tvCount.isVisible = (list?.size ?: 0) > 1
|
runOnUiThread {
|
viewPager.currentItem = index
|
refreshCount(index)
|
}
|
}
|
|
override fun setOnclick() {
|
tvBack.setOnClickListener { finish() }
|
viewPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
|
override fun onPageSelected(position: Int) {
|
super.onPageSelected(position)
|
refreshCount(position)
|
}
|
})
|
}
|
|
//刷新下标
|
private fun refreshCount(index: Int) {
|
tvCount.text = "${index + 1}/${list?.size ?: 0}"
|
}
|
}
|