使用swipecard实现卡片视图左右滑动监听以及点击监听
生活随笔
收集整理的這篇文章主要介紹了
使用swipecard实现卡片视图左右滑动监听以及点击监听
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
使用swipecard實現(xiàn)卡片視圖左右滑動監(jiān)聽以及點擊監(jiān)聽 ?前言: 大家好,今天給大家介紹安卓一種特別實用有很酷炫的組件swipecard,當然這并不是安卓爸爸創(chuàng)造的,這是國內(nèi)的一個我認為是大牛的一個人隨便寫著玩兒搞出來了,我看了他的代碼介紹已經(jīng)很清晰了,但是對于剛入門學安卓的同學們來說理解還是得需要一定的時間,于是在這里我就給大家把他的代碼給精簡一下步驟,希望能給大家一些幫助。 (圖片無法上傳所以導致圖片不可見,大家可以點擊我的有道鏈接查看 http://note.youdao.com/noteshare?id=ef7292c53d507cd0e1f3b15abb518e48) 1、導入: 第一步:首先大家需要去GitHub上去下載這個組件的壓縮包然后解壓,解壓點開文件后應該是下圖這種效果(圖片不顯示,就是一個文件夾): 第二步:導入Module,在file的目錄下選擇new選擇import 然后點擊出現(xiàn)下圖界面,在瀏覽你第一步下載的文件夾選擇library然后點擊完成 第三步: 添加依賴:在file文件目錄下的project structure里選擇你的APP,選擇depedence目錄 點擊加號選擇第二個Module?depedence選擇lib目錄下點擊選擇添加依賴,點擊完成 至此我們對于導入Module的工作已經(jīng)完成了,下面就是實現(xiàn)組件的效果了: 2、使用: 第一步:首先我們要明白,這是一個組件,類似于ListView的一個組件,所以第一步就是在xml文件中生成它 第二步:因為與ListView相似,所以這個組件也需要適配器,下面我們就要自定義一個適配器,但是需要繼承的不是BaseAdapter而是繼承咱們導入的那個Module里的BaseCardAdapter,看下面代碼:(每個方法都已經(jīng)有了注釋,大家應該都看的明白) 1 package com.jereh.biyingapplication.adapter;
2
3 import android.content.Context;
4 import android.view.View;
5 import android.widget.ImageView;
6
7 import com.bumptech.glide.Glide;
8 import com.huxq17.swipecardsview.BaseCardAdapter;
9 import com.jereh.biyingapplication.entity.CardImg;
10 import com.jereh.biyingapplication.*;
11 import java.util.List;
12
13 /**
14 * Created by zhangdi on 2016/8/31.
15 */
16 public class MyAdapter extends BaseCardAdapter {
17 private List<CardImg> datas;
18 private Context context;
19
20 public MyAdapter(List<CardImg> datas, Context context) {
21 this.datas = datas;
22 this.context = context;
23 }
24 /**
25 * 獲取卡片的數(shù)量
26 *
27 * @return
28 */
29 @Override
30 public int getCount() {
31 if (datas.size()<1){
32 return 0;
33 }else {
34 return datas.size();
35 }
36
37 }
38
39 /**
40 * 獲取卡片view的layout id
41 *
42 * @return
43 */
44 @Override
45 public int getCardLayoutId() {
46 return R.layout.card_item;
47 }
48
49 /**
50 * 將卡片和數(shù)據(jù)綁定在一起
51 *
52 * @param position 數(shù)據(jù)在數(shù)據(jù)集中的位置
53 * @param cardview 要綁定數(shù)據(jù)的卡片
54 */
55 @Override
56 public void onBindData(int position, View cardview) {
57 if (datas == null || datas.size() == 0) {
58 return;
59 }
60 ImageView imageView =
61 (ImageView) cardview.findViewById(R.id.lv_img);
62 CardImg img = datas.get(position);
63 Glide.with(context)
64 .load(img.getImg())
65 .crossFade()
66 .centerCrop()
67 .into(imageView);
68 }
69
70 /**
71 * 獲取可見的cardview的數(shù)目,默認是3
72 * @return
73 */
74 @Override
75 public int getVisibleCardCount() {
76 return datas.size();
77 }
78 }
?
第三步:現(xiàn)在已經(jīng)有了適配器,布局中也已經(jīng)有了組件,剩下要做的就是在java代碼中把他們關聯(lián)起來并給添加數(shù)據(jù)以及對各種事件做監(jiān)聽了: 1 swipeCardsView = 2 (SwipeCardsView)view.findViewById(R.id.swipCardsView); 3 //設置滑動監(jiān)聽 4 swipeCardsView 5 .setCardsSlideListener(new SwipeCardsView.CardsSlideListener() { 6 @Override 7 public void onShow(int index) { 8 Log.i("test showing index = ", "" + index); 9 } 10 11 @Override 12 public void onCardVanish(int index, SwipeCardsView.SlideType type) { 13 String orientation = ""; 14 switch (type) { 15 case LEFT: 16 orientation = "向左飛出"; 17 break; 18 case RIGHT: 19 orientation = "向右飛出"; 20 break; 21 } 22 } 23 24 @Override 25 public void onItemClick(View cardImageView, int index) { 26 27 } 28 });?
下面就是定義各種事件的方法以及關聯(lián)適配器展示界面的方法:(其中mList是數(shù)據(jù)) 1 /** 2 * 卡片向左邊飛出 3 */ 4 public void doLeftOut() { 5 swipeCardsView.slideCardOut(SwipeCardsView.SlideType.LEFT); 6 } 7 /** 8 * 卡片向右邊飛出 9 */ 10 public void doRightOut() { 11 swipeCardsView.slideCardOut(SwipeCardsView.SlideType.RIGHT); 12 } 13 /** 14 * 顯示cardsview 15 */ 16 private void show() { 17 if (adapter == null) { 18 adapter = new MyAdapter(mList, getActivity()); 19 swipeCardsView.setAdapter(adapter); 20 } else { 21 swipeCardsView.notifyDatasetChanged(mList.indexOf(mList)); 22 } 23 }?
至此這個組件已經(jīng)完全配置完成,簡單吧,希望我的筆記能對大家有所幫助,更希望大家能在自己的APP中實現(xiàn),謝謝 posted on 2016-09-01 14:04 < /> 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/zhangdiIT/p/5829589.html
總結
以上是生活随笔為你收集整理的使用swipecard实现卡片视图左右滑动监听以及点击监听的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos6.5虚拟机安装后,没有ip
- 下一篇: 【框架】[Spring]XML配置实现A