Kotlin學習筆記——ViewPager

    #define 小毛驢 xml

使用方法

  1. 在活動頁面添加ViewPager,如果需要tab標簽,在ViewPager里嵌套PagerTabStrip或PagerTitleStrip
  2. 設計傳送數據的類(一張圖和一個標題就足夠)
  3. 編寫ViewPager的適配器
class ImagePagerAdapter(val context: Context, val itemList:MutableList<itemInfo>) : PagerAdapter() {
    val views = mutableListOf<ImageView>()
    init {
        for (item in itemList) {
            val view = ImageView(context)
            //view.layoutParams = ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.WRAP_CONTENT)
            view.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)

            view.setImageResource(item.pic)
            view.scaleType = ImageView.ScaleType.FIT_CENTER
            views.add(view)
        }
    }
    override fun isViewFromObject(p0: View, p1: Any): Boolean = (p0 === p1)

    override fun getCount(): Int = views.size

    override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
        container.removeView(views[position])
    }

    override fun instantiateItem(container: ViewGroup, position: Int): Any {
        container.addView(views[position])
        return views[position]
    }

    override fun getPageTitle(position: Int): CharSequence? {
        return itemList[position].desc
    }//與PagerTabStrip或配合使用

}
  1. 給PagerView添加適配器和頁面改變的Listener
class MainActivity : AppCompatActivity(), ViewPager.OnPageChangeListener {
    override fun onPageScrollStateChanged(p0: Int) {
    }

    override fun onPageScrolled(p0: Int, p1: Float, p2: Int) {

    }


    override fun onPageSelected(p0: Int) {
        Toast.makeText(this, p0.toString(), Toast.LENGTH_SHORT).show()
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        //supportActionBar?.hide()
        var vp:ViewPager = findViewById(R.id.vp)
        val pics = arrayOf(R.mipmap.basic, R.mipmap.close, R.mipmap.debug, R.mipmap.edit)
        val list:MutableList<itemInfo> = mutableListOf()
        for (i in pics.indices) {
            list.add(itemInfo((i+1).toString(), pics[i]))
        }
        vp.adapter = ImagePagerAdapter(this, list)
        vp.currentItem = 0
        vp.addOnPageChangeListener(this)

        var title: PagerTabStrip = findViewById(R.id.title)

        title.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20f)
        title.setTextColor(Color.RED)
    }
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 這是谷歌官方給我們提供的一個兼容低版本安卓設備的軟件包,里面包囊了只有在安卓3.0以上可以使用的api。而view...
    Ten_Minutes閱讀 5,847評論 1 19
  • ViewPager在開發(fā)中的使用頻率非常的高,所以在此做個總結。主要包括以下幾方面: ViewPager的簡介和作...
    西瓜太郎123閱讀 121,795評論 21 261
  • 一、簡歷準備 1、個人技能 (1)自定義控件、UI設計、常用動畫特效 自定義控件 ①為什么要自定義控件? Andr...
    lucas777閱讀 5,389評論 2 54
  • 在我心中一直埋藏著一個秘密,從未對其他人吐露,即使我最親近的父母,也并不知曉。我雖然善于隱藏秘密,但不代表我沒有對...
    與心靈對話閱讀 467評論 2 1
  • 像乍暖還寒的早春 我迫不及待走上枝頭 而長久不散的北風 又將我吹走 如弱柳
    張家界Tuber閱讀 427評論 0 1

友情鏈接更多精彩內容