日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

界面无小事(八):RecyclerView增删item

發(fā)布時(shí)間:2023/12/19 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 界面无小事(八):RecyclerView增删item 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

界面無小事(一): RecyclerView+CardView了解一下

界面無小事(二): 讓RecyclerView展示更多不同視圖

界面無小事(三):用RecyclerView + Toolbar做個(gè)文件選擇器

界面無小事(四):來寫個(gè)滾動(dòng)選擇器吧!

界面無小事(五):自定義TextView

界面無小事(六):來做個(gè)好看得側(cè)拉菜單!

界面無小事(七):使用代碼動(dòng)態(tài)增刪布局


目錄

  • 前言
  • 增刪item
  • 自定義增刪動(dòng)畫
  • 最后

前言

之前寫過一篇代碼動(dòng)態(tài)增刪布局的, 對(duì)比下這次的RecyclerView增刪item, 說句實(shí)話, 代碼動(dòng)態(tài)增刪布局基本可以退群了.


增刪item

當(dāng)然首先你可以按照第一篇-界面無小事(一): RecyclerView+CardView了解一下建立基礎(chǔ)的RecyclerView. 這次的關(guān)鍵是在適配器代碼中加入增刪item的操作. 要注意一點(diǎn), 刷新和原來在ListView的操作是不一樣的. 你可以直接看官方文檔, 大致有這幾個(gè):

  • notifyItemInserted()
  • notifyItemRemoved()
  • notifyItemMoved()
  • notifyItemChanged()

在適配器中加入如下代碼:

public void addData(int position) {mData.add(position, "hello python");notifyItemInserted(position); }public void removeData(int position) {mData.remove(position);notifyItemRemoved(position); } 復(fù)制代碼

然后我們在toolbar中加上add和del按鈕, 對(duì)應(yīng)這兩個(gè)方法.

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"><itemandroid:id="@+id/add"android:icon="@mipmap/ic_launcher"android:title="@string/add"app:showAsAction="never" /><itemandroid:id="@+id/del"android:icon="@mipmap/ic_launcher"android:title="@string/del"app:showAsAction="never" /> </menu> 復(fù)制代碼

并且設(shè)置長按為刪除操作, 點(diǎn)擊是增加操作. 好了, 上效果圖:

不單單是我演示的這種布局, 還有線型的, 橫向的, 瀑布流都可以有這種類似效果. 可參考界面無小事(二): 讓RecyclerView展示更多不同視圖.

那既然有默認(rèn)動(dòng)畫, 肯定就能自定義動(dòng)畫了. 在這之前, 先說說幾個(gè)方法. 用來設(shè)置動(dòng)畫的具體狀態(tài)的持續(xù)時(shí)間.

rvTest.getItemAnimator().setAddDuration(400); rvTest.getItemAnimator().setRemoveDuration(400); rvTest.getItemAnimator().setMoveDuration(400); rvTest.getItemAnimator().setChangeDuration(400); 復(fù)制代碼

自定義增刪動(dòng)畫

這里借助開源項(xiàng)目. 因?yàn)檫@個(gè)項(xiàng)目真的足夠地棒. 自帶動(dòng)畫個(gè)數(shù)都已經(jīng)足夠用了, 見下. 你還可以繼續(xù)在這基礎(chǔ)上自定義. 是不是感覺三生萬物了.

Animators

分類動(dòng)畫類名
CoolLandingAnimator
ScaleScaleInAnimator, ScaleInTopAnimator, ScaleInBottomAnimator, ScaleInLeftAnimator, ScaleInRightAnimator
FadeFadeInAnimator, FadeInDownAnimator, FadeInUpAnimator, FadeInLeftAnimator, FadeInRightAnimator
FlipFlipInTopXAnimator, FlipInBottomXAnimator, FlipInLeftYAnimator, FlipInRightYAnimator
SlideSlideInLeftAnimator, SlideInRightAnimator, OvershootInLeftAnimator, OvershootInRightAnimator, SlideInUpAnimator, SlideInDownAnimator

而且非常難得的是使用方法還很簡單, 需要幾個(gè)步驟

  • 在Module的build.gradle中寫入
dependencies {implementation 'jp.wasabeef:recyclerview-animators:2.3.0' } 復(fù)制代碼
  • 在Project的build.gradle中寫入
repositories {google()jcenter() } 復(fù)制代碼

具體使用部分只要用動(dòng)畫類名替換之前默認(rèn)的動(dòng)畫類名即可. 例如:

rvTest.setAdapter(mAdapter); rvTest.setItemAnimator(new SlideInLeftAnimator()); 復(fù)制代碼

好了, 接下來看幾個(gè)效果圖吧:


最后

喜歡記得點(diǎn)贊哦, 有意見或者建議評(píng)論區(qū)見, 暗中關(guān)注我也是可以的.


總結(jié)

以上是生活随笔為你收集整理的界面无小事(八):RecyclerView增删item的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。