界面無小事(八):RecyclerView增刪item

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

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

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

界面無小事(四):來寫個滾動選擇器吧!

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

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

界面無小事(七):使用代碼動態增刪布局


目錄

  • 前言
  • 增刪item
  • 自定義增刪動畫
  • 最后

前言

之前寫過一篇代碼動態增刪布局的, 對比下這次的RecyclerView增刪item, 說句實話, 代碼動態增刪布局基本可以退群了.


增刪item

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

  • 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);
}
復制代碼

然后我們在toolbar中加上add和del按鈕, 對應這兩個方法.

<?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>
復制代碼

并且設置長按為刪除操作, 點擊是增加操作. 好了, 上效果圖:

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

那既然有默認動畫, 肯定就能自定義動畫了. 在這之前, 先說說幾個方法. 用來設置動畫的具體狀態的持續時間.

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

自定義增刪動畫

這里借助開源項目. 因為這個項目真的足夠地棒. 自帶動畫個數都已經足夠用了, 見下. 你還可以繼續在這基礎上自定義. 是不是感覺三生萬物了.

Animators

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

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

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

具體使用部分只要用動畫類名替換之前默認的動畫類名即可. 例如:

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

好了, 接下來看幾個效果圖吧:


最后

喜歡記得點贊哦, 有意見或者建議評論區見, 暗中關注我也是可以的.


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450909.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450909.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450909.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Failed to install Tomcat7 service 解決

見&#xff1a; http://blog.csdn.net/desow/article/details/21446197 tomcat 安裝時出現 Failed to install Tomcat7 service 今天在安裝tomcat時提示 Failed to install Tomcat7 service了&#xff0c;花了大半天的時間找到了原因&#xff0c;下面分享給大家&#xff0c;希望…

保守官僚 諾基亞就這樣迷失在智能機時代?

7月19日&#xff0c;諾基亞發布了二季度財報&#xff0c;凈虧損達到了17億美元&#xff0c;其中智能手機份額和銷售量進一步下滑&#xff0c;這個智能手機的領導者&#xff0c;正在因智能手機而急速墜落。諾記亞領先業界近十年就把握住了智能手機的趨勢&#xff0c;并推出了首款…

django集成ansibe實現自動化

動態生成主機列表和相關參數 def create_admin_domain(admin_node):workpath BASE_DIR /tools/ansible/scripthosts_file BASE_DIR /tools/ansible/host/ createhostfile()yml_file BASE_DIR /tools/ansible/yml/ create_admin_domain.ymldomain_path admin_node.doma…

extend 對象繼承

function extend(o, n, override) {for (var p in n) {if (n.hasOwnProperty(p) && (!o.hasOwnProperty(p) || override))o[p] n[p];} }// 默認參數 var options {pageIndex: 1,pageTotal: 2 };// 新設置參數 var userOptions {pageIndex: 3,pageSize: 10 }extend(o…

【spring容器啟動】之bean的實例化和初始化(文末附:spring循環依賴原理)

本次我們通過源碼介紹ApplicationContext容器初始化流程&#xff0c;主要介紹容器內bean的實例化和初始化過程。ApplicationContext是Spring推出的先進Ioc容器&#xff0c;它繼承了舊版本Ioc容器BeanFactory&#xff0c;并進一步擴展了容器的功能&#xff0c;增加了bean的自動識…

如何將自己的Java項目部署到外網

見&#xff1a;http://jingyan.baidu.com/article/90bc8fc864699af653640cf7.html 做b/s模式的web開發不同于c/s模式的客戶端開發&#xff0c;c/s模式我們只要做好生成可執行文件發送給其他人&#xff0c;其他人就可以用了。但是c/s模式不同&#xff0c;在同一局域網下&#xf…

[Swift]LeetCode916.單詞子集 | Word Subsets

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★?微信公眾號&#xff1a;山青詠芝&#xff08;shanqingyongzhi&#xff09;?博客園地址&#xff1a;山青詠芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;?GitHub地址&a…

揭秘騰訊研究院輸出策略:產品和人才的孵化器

直到現在&#xff0c;騰訊研究院創始人鄭全戰仍堅持面試招入研究院的每一個人&#xff0c;并做詳細記錄。天賦上的靈性、性格中的包容是他看重的&#xff0c;當然首先人要踏實。大約6年前&#xff0c;鄭全戰加入騰訊&#xff0c;負責籌建中國互聯網公司中的第一個研究院&#x…

java后端必會【基礎知識點】

&#xff08;一&#xff09;java集合類&#xff08;done&#xff09; 在java集合類中最常用的是Collection和Map的接口實現類。Collection又分為List和Set兩類接口&#xff0c;List的實現類有ArrayList、LinkedList、Vector、Stack&#xff0c;Set接口的實現類有HashSet、Tree…

無法連接虛擬設備ide1:0,主機上沒有相對應的設備... 解決

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 運行虛擬機出現報錯&#xff1a; 無法連接虛擬設備ide1:0&#xff0c;主機上沒有相對應的設備&#xff0c;您 要在每次開啟此虛擬機時都…

繳滿15年能領多少錢 養老金計算公式網上瘋傳

社保人員稱我省計算方式與各設區市平均工資掛鉤&#xff0c;與網上不同 最近&#xff0c;關于“延遲退休”引起各方高度關注&#xff0c;成為廣大居民十分關心的話題。是否延遲退休尚無定論&#xff0c;但在網上有不少關于養老金的計算。那網上流傳的計算方法是否科學&#xff…

48_并發編程-線程-資源共享/鎖

一、數據共享多個線程內部有自己的數據棧&#xff0c;數據不共享&#xff1b;全局變量在多個線程之間是共享的。1 # 線程數據共享不安全加鎖2 3 import time4 from threading import Thread, Lock5 6 7 num 1008 9 def func(t_lock): 10 global num 11 t_lock.acquire…

移動硬盤提示無法訪問設備硬件出現致命錯誤,導致請求失敗的資料尋回方案

J盤打不開設備硬件出現致命錯誤,導致請求失敗&#xff0c;是因為這個I盤的文件系統內部結構損壞導致的。要恢復里面的數據就必須要注意&#xff0c;這個盤不能格式化&#xff0c;否則數據會進一步損壞。具體的恢復方法看正文 工具/軟件&#xff1a;星空數據恢復軟件 步驟1&…

VMware10上新建虛擬機步驟圖解

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 第一種 : 自定義方式&#xff1a; 安裝虛擬機的過程步驟&#xff0c;基本上過程的每一步都有截圖&#xff0c;跟著過程就可以很容易的創…

怎么理解 IaaS、SaaS 和 PaaS 的區別?

原文鏈接&#xff1a;怎么理解 IaaS、SaaS 和 PaaS 的區別&#xff1f; 一、定義層面的區別 SaaS、PaaS、IaaS簡單的說都屬于云計算服務&#xff0c;也就是云計算服務。我們對于云計算的概念&#xff0c;維基百科有以下定義&#xff1a; Cloud computing is a new form of In…

三星“打法”:先模仿對手 再吃掉對手

臺灣地區電子業者將三星視為“臺灣公敵”&#xff0c;事實上&#xff0c;它幾乎是全球電子業者的敵人。 這家韓國電子業巨頭十年之間奪取了日本企業在這一領域中縱橫30年的榮光&#xff0c;更是建立起了令人嘆為觀止的垂直整合帝國。 韓國政府的大力支持、日元升值韓元貶值等均…

SharpZipLib 壓縮ZIP導出

1      var uploadSectionDir Path.Combine("Upload", "QQ", DateTime.Now.ToString("yyyyMMdd"));2 string uploadDir Path.Combine(HttpRuntime.AppDomainAppPath, uploadSectionDir);3 if (!Directory.Exi…

java動態調用c++庫

前言 最近在做一個通過java程序調用c動態語言庫&#xff0c;在網上百度&#xff0c;谷歌找了諸多例子&#xff0c;還是屢試不爽。經過一番折騰還是披荊斬棘&#xff0c;創出一條道路。希望分享給正在迷茫的朋友們... 使用的環境 spring boot gradle JNI介紹 JNI全拼是Java Nat…

如何刪除虛擬機上的操作系統、刪除新建的虛擬機

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 打開VMware&#xff0c;我安裝了三個虛擬系統&#xff0c;要對win98進行刪除&#xff0c;從磁盤上刪除~~ 2、雙擊你要刪除的系統&#xf…

什么是QoS技術

QoS&#xff08;Quality of Service&#xff09;是服務質量的簡稱。從傳統意義上來講&#xff0c;無非就是傳輸的帶寬、傳送的時延、數據的丟包率等&#xff0c;而提高服務質量無非也就是保證傳輸的帶寬&#xff0c;降低傳送的時延&#xff0c;降低數據的丟包率以及時延抖動等。…