Android kotlin使用RecyclerView实例
生活随笔
收集整理的這篇文章主要介紹了
Android kotlin使用RecyclerView实例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、創(chuàng)建entity類
class InternentBarEntity {var bname: String? = nullvar barea: String? = nullvar badddata: String? = nullvar bimage: String? = nullvar bid: String? = null }2、創(chuàng)建adapter類
/***作者:created by meixi*郵箱:15913707499@163.com*日期:2019/5/29 10*/ class InternetBarAdapter( private val entityList: List<InternentBarEntity>) : RecyclerView.Adapter<InternetBarAdapter.ViewHolder>() {private var mOnItemClickListener: OnItemClickListener? = nulloverride fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {val view = LayoutInflater.from(parent.context).inflate(R.layout.tab_item, null)return ViewHolder(view)}override fun onBindViewHolder(holder: ViewHolder, position: Int) {val entity = entityList[position]try {holder.item_intnbname.text = entity.bname} catch (e: Exception) {e.printStackTrace()}//判斷是否設置了監(jiān)聽器if (mOnItemClickListener != null) {//為ItemView設置監(jiān)聽器-holder.itemView.setOnClickListener {val position = holder.layoutPosition // 1mOnItemClickListener!!.onItemClick(holder.itemView, position) // 2}}}override fun getItemCount(): Int {return entityList.size}inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {var item_intnbname = itemView.findViewById(R.id.tab_tv) as TextView}// 刪除 打勾 全選fun cleckAll(is_checked: Int) { //全選 刪除多少那里要刪除全部for (a in entityList.indices) {if (is_checked == a) {entityList.get(a).bname = "選中了"} else {}}notifyDataSetChanged()}interface OnItemClickListener {fun onItemClick(view: View, position: Int)}fun setOnItemClickListener(onItemClickListener: OnItemClickListener) {this.mOnItemClickListener = onItemClickListener} }3、添加recyclerview依賴
compile('com.android.support:recyclerview-v7:25.1.1') {force = true }4、加載數(shù)據(jù)實現(xiàn)kotlin 代碼
private val barEntityList = ArrayList<InternentBarEntity>() private var barAdapter: InternetBarAdapter? = null private var lastposion: Int = 0 private var pagenum = 1 private var pageContent:Int = 0 private var pageSize = 10 public fun initrecycleView(){var internentBarEntity2:InternentBarEntity= InternentBarEntity()internentBarEntity2.badddata = "地址122"internentBarEntity2.bname="名稱111222"barEntityList.add(internentBarEntity2)for (a in 0..19) {var internentBarEntity:InternentBarEntity=InternentBarEntity()internentBarEntity.badddata = "地址1"internentBarEntity.bname="名稱111=="+abarEntityList.add(internentBarEntity) // if (a==6){ // break // }}barAdapter = InternetBarAdapter( barEntityList)barAdapter!!.setOnItemClickListener(object : InternetBarAdapter.OnItemClickListener {override fun onItemClick(view: View, position: Int) {barAdapter!!.cleckAll(position)LgqLogutil.e("ITEM"+position)}})mRecyclerView.layoutManager = LinearLayoutManager(context)mRecyclerView.adapter = barAdaptermRecyclerView.isNestedScrollingEnabled = false//禁止滑動mRecyclerView.isFocusable = false//導航欄切換不再focusemRecyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {//用來標記是否正在向最后一個滑動,既是否向右滑動或向下滑動internal var isSlidingToLast = falseoverride fun onScrollStateChanged(recyclerView: RecyclerView?, newState: Int) {val manager = recyclerView!!.layoutManager as LinearLayoutManager// 當不滾動時if (newState == RecyclerView.SCROLL_STATE_IDLE) {//獲取最后一個完全顯示的ItemPositionlastposion = manager.findLastCompletelyVisibleItemPosition()// Log.i("lgq","..........dddddd====="+"....."+lastposion);val totalItemCount = manager.itemCountif (lastposion == totalItemCount - 1 && isSlidingToLast) {pagenum++if (pagenum > pageContent) {Toast.makeText(activity,"yidaodi",Toast.LENGTH_LONG).show()return}}}}override fun onScrolled(recyclerView: RecyclerView?, dx: Int, dy: Int) {super.onScrolled(recyclerView, dx, dy)//dx用來判斷橫向滑動方向,dy用來判斷縱向滑動方向//大于0表示,正在向右滾動;小于等于0 表示停止或向左滾動isSlidingToLast = dy > 0}})}bug在線交流:QQ1085220040
效果:
總結(jié)
以上是生活随笔為你收集整理的Android kotlin使用RecyclerView实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高德公交路径等时线分析
- 下一篇: Android 播放raw文件夹下音频文