当前位置: 首页 > news >正文

Android实现ViewPager适配器kotlin简单实现

Android实现ViewPager适配器kotlin

效果

在n个视图间水平滑动切换
注意是viewpager实现的,viewpager2的适配器和1不同

1.适配器类kotlin代码

类名:VPAdapter
属性:
layoutList整型列表,保存要切换的视图id
context上下文,即调用它的Activity
itemCount:页数,从1开始

override时记得把高亮的todo提示删掉

package com.xayah.gesturesdemo.activity.tiktok

import android.content.Context
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.Adapter
import androidx.viewpager.widget.PagerAdapter
import com.xayah.gesturesdemo.R

/*
    *name: GesturesDemo 
    *description:
    */
class VPAdapter() : PagerAdapter () {
    private lateinit var layoutList: IntArray
    private lateinit var context: Context
    private var itemCount = 1

    constructor(context: Context,itemCount:Int,layoutList:IntArray) : this(){
        this.context = context
        this.itemCount = itemCount
        this.layoutList = layoutList
    }
    override fun getCount(): Int {
        return this.itemCount
    }

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

    override fun instantiateItem(container: ViewGroup, position: Int): Any {
        val view = View.inflate(context,this.layoutList[position],null)
        container.addView(view)
        return view
    }

    override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
        super.destroyItem(container, position, `object`)
    }
}

2.activity调用适配器

var layouts = intArrayOf(
        R.layout.activity_tiktok_view1,		
        R.layout.activity_tiktok_view2
    )
var viewPager = findViewById<ViewPager>(R.id.tiktok_viewpage)
viewPager.adapter = VPAdapter(this,2,layouts)

很简单吧

参考:
https://blog.csdn.net/whjk20/article/details/107338023

相关文章:

  • 点云深度学习系列博客(四):PointNet代码精讲
  • 基于SSH开发HR(人力资源管理系统)简单工作流程系统 课程设计 大作业 毕业设计
  • Promise详解与基础实现(Promise/A+规范)
  • 封装和static
  • LF-YOLO: A Lighter and Faster YOLO for Weld Defect Detection of X-ray Image
  • JavaScript随手笔记---保留小数位
  • 检查网络端口是否正常
  • 基于JavaSwing开发房产管理系统(access数据库) 课程设计 大作业
  • [面试直通版]操作系统之编程语言与运行原理(下)
  • DFP 数据转发协议规则说明
  • Qt开发经验小技巧246-250
  • 《算法导论》第14章-数据结构的扩张 14.1-动态顺序统计 14.2-如何扩张数据结构
  • 前端面试丨综合整理中高级前端最新面试题
  • 大端与小端
  • GBase 8c 数据库内置角色
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • HashMap剖析之内部结构
  • javascript 总结(常用工具类的封装)
  • JavaWeb(学习笔记二)
  • Java教程_软件开发基础
  • JS字符串转数字方法总结
  • ucore操作系统实验笔记 - 重新理解中断
  • 项目管理碎碎念系列之一:干系人管理
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 再谈express与koa的对比
  • gunicorn工作原理
  • ###C语言程序设计-----C语言学习(6)#
  • #、%和$符号在OGNL表达式中经常出现
  • #define 用法
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (2015)JS ES6 必知的十个 特性
  • (4)(4.6) Triducer
  • (ZT)出版业改革:该死的死,该生的生
  • (多级缓存)缓存同步
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (附源码)计算机毕业设计高校学生选课系统
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转)平衡树
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .net 调用php,php 调用.net com组件 --
  • .net 设置默认首页
  • .NET 中 GetProcess 相关方法的性能
  • .NET的数据绑定
  • @property括号内属性讲解
  • [BUUCTF]-PWN:wustctf2020_number_game解析(补码,整数漏洞)
  • [C# 基础知识系列]专题十六:Linq介绍
  • [C#]winform利用seetaface6实现C#人脸检测活体检测口罩检测年龄预测性别判断眼睛状态检测
  • [C++]二叉搜索树
  • [corCTF 2022] CoRJail: From Null Byte Overflow To Docker Escape
  • [EULAR文摘] 利用蛋白组学技术开发一项蛋白评分用于预测TNFi疗效