SwipeLayout框架實現(xiàn)側(cè)拉刪除編輯功能
本文實例為大家分享了SwipeLayout實現(xiàn)側(cè)拉刪除編輯的具體代碼,供大家參考,具體內(nè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--> <!--在這里寫我們側(cè)滑后顯示出來的控件--> <!-通常是幾個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--> <!--這里寫我們條目顯示的內(nèi)容的布局--> </LinearLayout> <!-- Surface View End --> </com.daimajia.swipe.SwipeLayout>
第三步、在Activity中得到SwipeLayout實例.
SwipeLayout swipeLayout = (SwipeLayout) view.findViewById(R.id.swipelayout); //設置側(cè)拉的模式 swipeLayout.setShowMode(SwipeLayout.ShowMode.LayDown); //如果布局文件里面有l(wèi)ayout_gravity屬性,這句可以忽略 //swipeLayout.addDrag(SwipeLayout.DragEdge.Left, findViewById(R.id.bottom_wrapper));
到此為止,一個條目的側(cè)滑功能就實現(xiàn)了。
如果我們在Listview里面使用這個功能,那么我們需要繼承BaseSwipeAdapter,并且復寫里面的幾個方法:
//獲取swipeLayout布局 @Override public int getSwipeLayoutResourceId(int position) { return R.id.swipelayout; } //生成條目布局,相當于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); //這里寫對布局中控件的一些初始化 swipeLayout.setShowMode(SwipeLayout.ShowMode.LayDown); return view; } //為條目里面的控件賦值 @Override public void fillValues(int position, View convertView) { } //下面的幾個方法是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; }
這樣,一個ListView的條目側(cè)滑就基本實現(xiàn)了。點擊刪除/編輯的代碼我們在方法generateView()里面實現(xiàn)。下面為Listview添加條目點擊事件:
//此處的swipeLayout是generateView()里面從條目布局里面獲取的 swipeLayout.getSurfaceView().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } });
如果我們需要在側(cè)滑的時候?qū)崿F(xiàn)其他邏輯的話,我們可以添加側(cè)滑監(jiān)聽:
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è)滑功能基本實現(xiàn)。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android MPAndroidChart開源庫圖表之折線圖的實例代碼
這篇文章主要介紹了Android MPAndroidChart開源庫圖表之折線圖的實例代碼,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05Android 優(yōu)化之a(chǎn)pp啟動優(yōu)化的實現(xiàn)
這篇文章主要介紹了Android 優(yōu)化之啟動優(yōu)化的實現(xiàn),啟動分為冷啟動和熱啟動,溫啟動,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07Android自定義PopupWindow實現(xiàn)炫酷的IOS對話框效果
這篇文章主要給大家介紹如何在android中實現(xiàn)高仿ios對話框效果,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2018-05-05NestedScrollView+Recyclerview下滑卡頓解決方法
本文為大家解決安卓開發(fā)時候NestedScrollView+Recyclerview下滑卡頓的問題,希望能夠幫助到你。2017-11-11Flutter Http網(wǎng)絡請求實現(xiàn)詳解
這篇文章主要介紹了Flutter Http網(wǎng)絡請求實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04