SwipeLayout框架實(shí)現(xiàn)側(cè)拉刪除編輯功能
本文實(shí)例為大家分享了SwipeLayout實(shí)現(xiàn)側(cè)拉刪除編輯的具體代碼,供大家參考,具體內(nèi)容如下
第一步、添加依賴(lài)
dependencies {
compile 'com.android.support:recyclerview-v7:21.0.0'
compile 'com.android.support:support-v4:20.+'
compile "com.daimajia.swipelayout:library:1.2.0@aar"
}
第二步、布局文件
//建議最好是在BottomView里面添加layout_gravity屬性,或者在代碼里面添加 <com.daimajia.swipe.SwipeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="80dp"> <!-- Bottom View Start--> <LinearLayout android:background="#66ddff00" android:id="@+id/bottom_wrapper" android:layout_width="160dp" android:weightSum="1" android:layout_height="match_parent"> <!--What you want to show--> <!--在這里寫(xiě)我們側(cè)滑后顯示出來(lái)的控件--> <!-通常是幾個(gè)TextView或者Button---> </LinearLayout> <!-- Bottom View End--> <!-- Surface View Start --> <LinearLayout android:padding="10dp" android:background="#ffffff" android:layout_width="match_parent" android:layout_height="match_parent"> <!--What you want to show in SurfaceView--> <!--這里寫(xiě)我們條目顯示的內(nèi)容的布局--> </LinearLayout> <!-- Surface View End --> </com.daimajia.swipe.SwipeLayout>
第三步、在Activity中得到SwipeLayout實(shí)例.
SwipeLayout swipeLayout = (SwipeLayout) view.findViewById(R.id.swipelayout); //設(shè)置側(cè)拉的模式 swipeLayout.setShowMode(SwipeLayout.ShowMode.LayDown); //如果布局文件里面有l(wèi)ayout_gravity屬性,這句可以忽略 //swipeLayout.addDrag(SwipeLayout.DragEdge.Left, findViewById(R.id.bottom_wrapper));
到此為止,一個(gè)條目的側(cè)滑功能就實(shí)現(xiàn)了。
如果我們?cè)贚istview里面使用這個(gè)功能,那么我們需要繼承BaseSwipeAdapter,并且復(fù)寫(xiě)里面的幾個(gè)方法:
//獲取swipeLayout布局
@Override
public int getSwipeLayoutResourceId(int position) {
return R.id.swipelayout;
}
//生成條目布局,相當(dāng)于BaseAdapter里面的getView()方法
@Override
public View generateView(int position, ViewGroup parent) {
View view = LayoutInflater.from(mContext).inflate(R.layout.listview_item, null);
SwipeLayout swipeLayout = (SwipeLayout) view.findViewById(R.id.swipelayout);
//這里寫(xiě)對(duì)布局中控件的一些初始化
swipeLayout.setShowMode(SwipeLayout.ShowMode.LayDown);
return view;
}
//為條目里面的控件賦值
@Override
public void fillValues(int position, View convertView) {
}
//下面的幾個(gè)方法是BaseAdapter里面的方法,BaseSwipeAdapter也是繼承自BaseAdapter
@Override
public int getCount() {
return 0;
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
這樣,一個(gè)ListView的條目側(cè)滑就基本實(shí)現(xiàn)了。點(diǎn)擊刪除/編輯的代碼我們?cè)诜椒╣enerateView()里面實(shí)現(xiàn)。下面為L(zhǎng)istview添加條目點(diǎn)擊事件:
//此處的swipeLayout是generateView()里面從條目布局里面獲取的
swipeLayout.getSurfaceView().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
如果我們需要在側(cè)滑的時(shí)候?qū)崿F(xiàn)其他邏輯的話(huà),我們可以添加側(cè)滑監(jiān)聽(tīng):
swipeLayout.addSwipeListener(new SwipeLayout.SwipeListener() {
@Override
public void onClose(SwipeLayout layout) {
//when the SurfaceView totally cover the BottomView.
}
@Override
public void onUpdate(SwipeLayout layout, int leftOffset, int topOffset) {
//you are swiping.
}
@Override
public void onStartOpen(SwipeLayout layout) {
}
@Override
public void onOpen(SwipeLayout layout) {
//when the BottomView totally show.
}
@Override
public void onStartClose(SwipeLayout layout) {
}
@Override
public void onHandRelease(SwipeLayout layout, float xvel, float yvel) {
//when user's hand released.
}
});
到此,ListView側(cè)滑功能基本實(shí)現(xiàn)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android MPAndroidChart開(kāi)源庫(kù)圖表之折線(xiàn)圖的實(shí)例代碼
這篇文章主要介紹了Android MPAndroidChart開(kāi)源庫(kù)圖表之折線(xiàn)圖的實(shí)例代碼,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Android Lock鎖實(shí)現(xiàn)原理詳細(xì)分析
這篇文章主要介紹了Android Lock鎖實(shí)現(xiàn)原理,Lock接口的實(shí)現(xiàn)類(lèi)提供了比使用synchronized關(guān)鍵字更加靈活和廣泛的鎖定對(duì)象操作,而且是以面向?qū)ο蟮姆绞竭M(jìn)行對(duì)象加鎖2023-02-02
Android 優(yōu)化之a(chǎn)pp啟動(dòng)優(yōu)化的實(shí)現(xiàn)
這篇文章主要介紹了Android 優(yōu)化之啟動(dòng)優(yōu)化的實(shí)現(xiàn),啟動(dòng)分為冷啟動(dòng)和熱啟動(dòng),溫啟動(dòng),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Android自定義PopupWindow實(shí)現(xiàn)炫酷的IOS對(duì)話(huà)框效果
這篇文章主要給大家介紹如何在android中實(shí)現(xiàn)高仿ios對(duì)話(huà)框效果,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-05-05
Android使用OkHttp進(jìn)行重定向攔截處理的方法
這篇文章主要介紹了Android使用OkHttp進(jìn)行重定向攔截處理的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
NestedScrollView+Recyclerview下滑卡頓解決方法
本文為大家解決安卓開(kāi)發(fā)時(shí)候NestedScrollView+Recyclerview下滑卡頓的問(wèn)題,希望能夠幫助到你。2017-11-11
android實(shí)現(xiàn)多點(diǎn)觸摸應(yīng)用
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)多點(diǎn)觸摸應(yīng)用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
Flutter Http網(wǎng)絡(luò)請(qǐng)求實(shí)現(xiàn)詳解
這篇文章主要介紹了Flutter Http網(wǎng)絡(luò)請(qǐng)求實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04

