模仿iOS版微信的滑動(dòng)View效果
前言
最近經(jīng)常交替使用Android和iOS手機(jī)。對(duì)于兩個(gè)系統(tǒng),從我們常用的列表來(lái)看,Android一般的列表菜單是通過(guò)長(zhǎng)按出來(lái)的,而iOS是通過(guò)滑動(dòng)出現(xiàn)的。比如我們常用的微信,對(duì)于Android版本,長(zhǎng)按某個(gè)聊天好友,會(huì)彈出 標(biāo)為未讀,置頂聊天,刪除聊天 選項(xiàng);對(duì)于iOS的版本,右滑,會(huì)顯示出 標(biāo)為未讀,刪除 選項(xiàng)
---------------------------------我是分割線---------------------------------
1. 滑動(dòng)View
1.1 內(nèi)容展示
我在Android上面,實(shí)現(xiàn)了一個(gè)滑動(dòng)的View,模仿的是微信的iOS版,先簡(jiǎn)單列舉一下功能,直接上圖,看著比較直觀一些。下面我放了四個(gè)動(dòng)畫,分別是:滑動(dòng)展開,單擊,長(zhǎng)按,雙擊。
滑動(dòng)效果

滑動(dòng)展開
單擊選擇效果

單擊選擇
長(zhǎng)按、雙擊效果

長(zhǎng)按和雙擊效果
1.2 功能介紹
這個(gè)滑動(dòng)View是一個(gè)自定義View,里面主要用了屬性動(dòng)畫,觸摸檢測(cè),觸摸反饋,配合測(cè)量完成。
使用時(shí),只需要在布局文件里面調(diào)用就可以,和 TextView 等常用控件一樣,像這個(gè)樣子。
在activity里面
slideView = findViewById(R.id.slide_view1);
slideView.setOnClickListener(new Listener.OnMenuClickListener() {
@Override
public void onClick(int id) {
switch(id){
case R.id.menu_a:
Util.toast("點(diǎn)擊 刪除");
break;
case R.id.menu_b:
Util.toast("點(diǎn)擊 設(shè)為未讀");
break;
case R.id.sure_delete:
Util.toast("點(diǎn)擊 確認(rèn)刪除");
break;
case R.id.long_press:
Util.toast("長(zhǎng)按");
VibratorLib.vibrateShort();
break;
case R.id.double_click:
Util.toast("雙擊");
break;
}
}
});
在xml里面
<android.support.constraint.ConstraintLayout
......
<demo.com.library.view.SlideView
android:id="@+id/slide_view1"
...
app:image_src="@drawable/crekerli_pig"
app:image_margin_start="10dp"
app:image_slide_length="60dp"
app:title_text="@string/title"
app:title_text_size="20sp"
app:title_text_color="@color/colorBlack"
app:title_text_margin_start="10dp"
app:message_text="@string/message"
app:message_text_size="12sp"
app:message_text_color="@color/colorBlack"
app:message_text_margin_start="10dp"
app:menu_a_background="@color/colorRed"
app:menu_a_text="@string/delete"
app:menu_a_text_size="20sp"
app:menu_a_aspect="1"
app:menu_b_background="@color/colorGray"
app:menu_b_text="@string/set"
app:menu_b_text_size="20sp"
app:menu_b_aspect="1.2"/>
...
從xml文件里面,細(xì)心一點(diǎn)兒可以看出我對(duì)SlideView的內(nèi)容分成了 image title message menu_a menu_b 五個(gè)部分。對(duì)應(yīng)到View里面,看下面的圖示:

頁(yè)面展開前

頁(yè)面展開后
下面分別介紹一下五個(gè)部分。
2. 五個(gè)部分
2.1 image
image 表示用戶頭像,里面有三個(gè)配置參數(shù)
app:image_src="@drawable/crekerli_pig" app:image_margin_start="10dp" app:image_slide_length="60dp" image_src image_margin_start image_slide_length
2.2 title
app:title_text="@string/title" app:title_text_size="20sp" app:title_text_color="@color/colorBlack" app:title_text_margin_start="10dp" title_text title_text_size title_text_color title_text_margin_start
2.3 message
app:message_text="@string/message" app:message_text_size="12sp" app:message_text_color="@color/colorBlack" app:message_text_margin_start="10dp" message_text message_text_size message_text_color message_text_margin_start
2.4 menu
menu_a 和menu_b的內(nèi)容是一樣的,所以這里放在一起統(tǒng)一講
app:menu_a_background="@color/colorRed" app:menu_a_text="@string/delete" app:menu_a_text_size="20sp" app:menu_a_aspect="1" app:menu_a_backgroundor app:menu_a_text app:menu_a_text_size app:menu_a_aspect
SlideView GitHub詳細(xì)地址
總結(jié)
以上所述是小編給大家介紹的模仿iOS版微信的滑動(dòng)View效果,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
- iOS使用pageViewController實(shí)現(xiàn)多視圖滑動(dòng)切換
- iOS中3DTouch預(yù)覽導(dǎo)致TableView滑動(dòng)卡頓問(wèn)題解決的方法
- iOS開發(fā)上下滑動(dòng)UIScrollview隱藏或者顯示導(dǎo)航欄的實(shí)例
- ios scrollview嵌套tableview同向滑動(dòng)的示例
- iOS基于UIScrollView實(shí)現(xiàn)滑動(dòng)引導(dǎo)頁(yè)
- Android仿IOS ViewPager滑動(dòng)進(jìn)度條
- IOS仿今日頭條滑動(dòng)導(dǎo)航欄
- iOS滑動(dòng)解鎖、滑動(dòng)獲取驗(yàn)證碼效果的實(shí)現(xiàn)代碼
- iOS 頁(yè)面滑動(dòng)與標(biāo)題切換顏色漸變的聯(lián)動(dòng)效果實(shí)例
- iOS自定義View實(shí)現(xiàn)卡片滑動(dòng)
相關(guān)文章
iOS10 適配-Xcode8問(wèn)題總結(jié)及解決方案
這篇文章主要介紹了iOS10 適配-Xcode8問(wèn)題總結(jié)的相關(guān)資料,這里整理了遇到的幾種問(wèn)題,并給出解決方案,需要的朋友可以參考下2016-11-11
iOS實(shí)現(xiàn)動(dòng)態(tài)的開屏廣告示例代碼
啟動(dòng)圖是在iOS開發(fā)過(guò)程中必不可少的一個(gè)部分,很多app在啟動(dòng)圖之后會(huì)有一張自定義的開屏廣告圖,但是有的時(shí)候需要讓啟動(dòng)圖看起來(lái)就是一個(gè)廣告,而且還要這個(gè)廣告里面會(huì)動(dòng),iOS的啟動(dòng)圖只能是靜態(tài)的,而且固定,為了實(shí)現(xiàn)看起來(lái)的動(dòng)畫效果,只能進(jìn)行偽造了。下面來(lái)一起看看2016-09-09
iOS逆向教程之動(dòng)態(tài)調(diào)試詳解
這篇文章主要給大家介紹了關(guān)于iOS逆向教程之動(dòng)態(tài)調(diào)試的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06
iOS仿小紅書呼吸燈動(dòng)畫(核心動(dòng)畫和定時(shí)器)兩種方式實(shí)現(xiàn)
本篇文章主要介紹了iOS仿小紅書呼吸燈動(dòng)畫(核心動(dòng)畫和定時(shí)器)兩種方式實(shí)現(xiàn),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-04-04
iOS 本地視頻和網(wǎng)絡(luò)視頻流播放實(shí)例代碼
本篇文章主要介紹了iOS 本地視頻和網(wǎng)絡(luò)視頻流播放實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
iOS如何獲取漢字(簡(jiǎn)體中文)筆畫數(shù)詳解
這篇文章主要給大家介紹了關(guān)于iOS如何獲取漢字(簡(jiǎn)體中文)筆畫數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02
iOS中如何判斷當(dāng)前網(wǎng)絡(luò)環(huán)境是2G/3G/4G/5G/WiFi
這篇文章主要給大家介紹了關(guān)于iOS中如何判斷當(dāng)前網(wǎng)絡(luò)環(huán)境是2G/3G/4G/5G/WiFi的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
iOS中獲取系統(tǒng)相冊(cè)中的圖片實(shí)例
這篇文章主要介紹了iOS中獲取系統(tǒng)相冊(cè)中的圖片實(shí)例,具有一定的參考價(jià)值沒(méi)有需要的朋友可以了解一下。2016-11-11

