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

滑動展開
單擊選擇效果

單擊選擇
長按、雙擊效果

長按和雙擊效果
1.2 功能介紹
這個滑動View是一個自定義View,里面主要用了屬性動畫,觸摸檢測,觸摸反饋,配合測量完成。
使用時,只需要在布局文件里面調(diào)用就可以,和 TextView 等常用控件一樣,像這個樣子。
在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("點擊 刪除");
break;
case R.id.menu_b:
Util.toast("點擊 設(shè)為未讀");
break;
case R.id.sure_delete:
Util.toast("點擊 確認刪除");
break;
case R.id.long_press:
Util.toast("長按");
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文件里面,細心一點兒可以看出我對SlideView的內(nèi)容分成了 image title message menu_a menu_b 五個部分。對應到View里面,看下面的圖示:

頁面展開前

頁面展開后
下面分別介紹一下五個部分。
2. 五個部分
2.1 image
image 表示用戶頭像,里面有三個配置參數(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詳細地址
總結(jié)
以上所述是小編給大家介紹的模仿iOS版微信的滑動View效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
iOS程序開發(fā)之使用PlaceholderImageView實現(xiàn)優(yōu)雅的圖片加載效果
這篇文章主要介紹了ioS程序開發(fā)之使用PlaceholderImageView實現(xiàn)優(yōu)雅的圖片加載效果的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-09-09
iOS App使用GCD導致的卡頓現(xiàn)象及解決方法
這篇文章主要給大家介紹了關(guān)于iOS App使用GCD導致的卡頓現(xiàn)象及解決方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-07-07
iOS App開發(fā)中使cell高度自適應的黑魔法詳解
這篇文章主要介紹了iOS App開發(fā)中使cell高度自適應的黑魔法詳解,作者利用iOS8以后的新特性講解了TableView、CollectionView中的cell高度自適應以及UITextView輸入內(nèi)容實時更新cell高度的方法,需要的朋友可以參考下2016-03-03
詳解iOS App中UiTabBarController組件的基本用法
UiTabBarController組件即是用來創(chuàng)建App中的Tab視圖切換選項欄,下面將詳解iOS App中UiTabBarController組件的基本用法,包括左右滑動切換標簽頁等基本功能的實現(xiàn),需要的朋友可以參考下2016-05-05
iOS App中調(diào)用iPhone各種感應器的方法總結(jié)
Xcode環(huán)境中包含CoreMotion框架,能夠幫助我們調(diào)用硬件設(shè)備的加速度傳感器和陀螺儀等感應器,下面比較詳細地整理了iOS App中調(diào)用iPhone各種感應器的方法總結(jié),需要的朋友可以參考下:2016-07-07

