亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

RecyclerView+CardView實現橫向卡片式滑動效果

2019-10-21 21:27:05
字體:
來源:轉載
供稿:網友

現在來介紹兩種控件RecyclerView和CardView,并通過實例將它們結合在一起實現一種橫向卡片式滑動效果.

1.RecyclerView

RecyvlerView是android SDK 新增加的一種控件,也被官方推薦代替ListView來使用,因為其具有更好的靈活性和代替性。

2.CardView

CardView是安卓5.0推出的一種卡片式控件,內部封裝了許多有用的方法來實現美觀效果。

3.如何使用RecylerView和CardView在android studio中

在build.gradle中添加依賴再編輯即可

compile 'com.android.support:recyclerview-v7:25.+'compile 'com.android.support:cardview-v7:25

4.通過實例,使用兩種控件實現橫向卡片式滑動效果

建立main.xml布局文件,代碼如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"       android:orientation="vertical"       android:layout_width="match_parent"       android:layout_height="match_parent"       xmlns:app="http://schemas.android.com/apk/res-auto">  <android.support.v7.widget.RecyclerView    android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/recycler_View"    >  </android.support.v7.widget.RecyclerView></LinearLayout>

使用過ListView的同學應該知道還需要一個子布局來填充RecyclerView 
以下為recyclerView_item.xml的代碼:

 

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"                  xmlns:app="http://schemas.android.com/apk/res-auto"       android:orientation="vertical"       android:layout_width="match_parent"       android:layout_height="match_parent"       android:id="@+id/recyclerview_item"       android:padding="30dp"  >  <android.support.v7.widget.CardView    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    app:contentPadding="50dp"    app:cardCornerRadius="20dp"    android:clickable="true"    android:foreground="?android:attr/selectableItemBackground"    app:cardElevation="@dimen/cardview_compat_inset_shadow"    app:cardBackgroundColor="@color/cardview_light_background">    <LinearLayout      android:layout_width="match_parent"      android:layout_height="wrap_content">      <TextView        android:id="@+id/tv1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:text="作者"        android:textSize="22dp"/>    </LinearLayout>    <LinearLayout      android:layout_width="match_parent"      android:layout_height="114dp"      >      <TextView        android:id="@+id/tv2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:text="        鋤禾日當午,汗滴禾下土"        android:textSize="22dp"/>    </LinearLayout>  </android.support.v7.widget.CardView></LinearLayout>

從代碼中,我們會發現使用了CardView控件以及在控件中添加簡易的兩個TextView

現在來介紹CardView的一些常用屬性,這也是現在卡片效果的關鍵所在

card_view:contentPadding 這個可以給你的內容加上padding屬性 
card_view:cardBackgroundColor這個可以改變cardview的背景 
card_view:cardCornerRadius這個可以改變cardview圓角的大小 
card_view:cardElevation這個比較難解釋,CardView的Z軸陰影,被用來決定陰影的大小以及柔和度,以至于可以逼真的模擬出對于深度效果的描述。說白點可以理解為陰影的大小 
andorid:foreground=”?android:attr/selectableItemBackground” 這個可以使CardView被點擊后出現波紋效

通過以上常用屬性可以使CardView出現各種不同的效果

現在回到Activity中來實現RecyclerView

跟ListView的一樣,我們需要寫一個適配器,代碼如下:

 

public class recyclerViewadapter extends RecyclerView.Adapter {  private List<DataBean> lists;  private Context context;  public recyclerViewadapter(List<DataBean> lists, Context context) {    this.lists = lists;    this.context = context;  }  class myholder extends RecyclerView.ViewHolder{    private TextView tv1,tv2;    public myholder(View itemView) {      super(itemView);      tv1= (TextView) itemView.findViewById(R.id.tv1);      tv2= (TextView) itemView.findViewById(R.id.tv2);    }  }  @Override  public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {    myholder holder =new myholder(LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_item,parent,false));    return holder;  }  @Override  public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {    Log.d("TAG", "onBindViewHolder: "+lists.get(position).getAutor());    ((myholder)holder).tv1.setText(lists.get(position).getAutor());    ((myholder)holder).tv2.setText(lists.get(position).getContent());  }  @Override  public int getItemCount() {    return lists.size();  }}

寫一個類繼承RecyclerView.Adapter,重寫RecyclerView.Adapter的三個重要方法 onBindViewHolder() getItemCount() 和 OncreateViewHolder()

OncreateViewHolder(): 創建新的View,被LayoutManager所調用OnBindViewHolder():將數據與界面進行綁定getItemCount() :返回數據的數量

在Activity中,代碼如下:

 

public class Frament1 extends android.support.v4.app.Fragment{  private Toolbar toolbar1;  private RecyclerView recycler_view;  private TextView tv1,tv2;  private View view;  private List<DataBean> lists;  @Override  public void onAttach(Context context) {    super.onAttach(context);  }  @Nullable  @Override  public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {    setHasOptionsMenu(true);     view = inflater.inflate(R.layout.fragment1, container, false);    initView();    initData();    LinearLayoutManager m=new LinearLayoutManager(getContext());    m.setOrientation(LinearLayoutManager.HORIZONTAL);    recycler_view.setLayoutManager(m);    recyclerViewadapter adapter=new recyclerViewadapter(lists,getContext());    recycler_view.setAdapter(adapter);    return view;  }  @Override  public void onResume() {    super.onResume();  }  private void initData() {    lists=new ArrayList<>();    lists.add(new DataBean("Smart","青青原上草,一歲一枯榮"));    lists.add(new DataBean("Smart","青青原上草,一歲一枯榮"));    lists.add(new DataBean("Smart","青青原上草,一歲一枯榮"));    lists.add(new DataBean("Smart","青青原上草,一歲一枯榮"));    lists.add(new DataBean("Smart","青青原上草,一歲一枯榮"));    lists.add(new DataBean("Smart","青青原上草,一歲一枯榮"));  }  private void initView() {    recycler_view= (RecyclerView) view.findViewById(R.id.recycler_View);    tv1= (TextView) view.findViewById(R.id.tv1);    tv2= (TextView) view.findViewById(R.id.tv2);  }}

在代碼中,我們獲取LayoutManager對象,設置其方向為水平方向,并設置RecyclerView的LayoutManager

然后實例化adapter對象,傳入上下文和假數據lists,并設置RecyclerView.adapater

 LinearLayoutManager m=new LinearLayoutManager(getContext());    m.setOrientation(LinearLayoutManager.HORIZONTAL);    recycler_view.setLayoutManager(m);    recyclerViewadapter adapter=new recyclerViewadapter(lists,getContext());    recycler_view.setAdapter(adapter);

到此基本步驟已經完成,運行程序。 

以下為運行截圖

RecyclerView,CardView,橫向,卡片式滑動

RecyclerView,CardView,橫向,卡片式滑動

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91久久国产精品91久久性色| 欧美成人精品在线观看| 日韩精品久久久久久福利| 色综合伊人色综合网| 九色91av视频| 欧美日韩在线观看视频小说| 神马久久久久久| 精品丝袜一区二区三区| 日韩h在线观看| 国产中文字幕日韩| 欧美疯狂xxxx大交乱88av| 日韩精品福利在线| 日本91av在线播放| 精品久久国产精品| 日韩精品免费在线播放| 国产精品精品国产| 91国产在线精品| 日韩在线中文视频| 中文字幕日韩综合av| 久久精品小视频| 久久精品人人做人人爽| 久久天天躁狠狠躁老女人| 久久av资源网站| 在线视频欧美日韩精品| 欧美高清视频在线观看| 国产日本欧美一区| 动漫精品一区二区| 国产精品mp4| 欧美激情成人在线视频| 国产精品视频免费观看www| 在线观看久久av| 亚洲成人精品久久| 在线视频精品一| 亚洲精品二三区| 日韩视频在线一区| 91精品国产九九九久久久亚洲| 亚洲三级 欧美三级| 97国产精品视频人人做人人爱| 日韩电影免费观看中文字幕| 欧美性猛交xxxx偷拍洗澡| 日韩一区视频在线| 欧美成人午夜剧场免费观看| 亚洲第一视频网站| 久久免费福利视频| 亚洲精品电影在线| 亚洲精品资源在线| 国产情人节一区| 91在线观看免费高清| 精品国产一区二区三区久久狼5月| 欧美性视频网站| 亚洲国产成人爱av在线播放| 中文字幕亚洲欧美一区二区三区| 日韩精品视频三区| 日本精品一区二区三区在线播放视频| 欧美一级片久久久久久久| 国产99久久精品一区二区永久免费| 久操成人在线视频| 国产97色在线| 久久精品国产欧美亚洲人人爽| 欧美精品18videos性欧美| 高清一区二区三区四区五区| 日本免费久久高清视频| 91视频国产精品| 欧美精品亚州精品| 国产精品丝袜高跟| 国产精品av免费在线观看| 成人观看高清在线观看免费| 亚洲性av在线| 91精品国产高清久久久久久久久| 国产91精品高潮白浆喷水| 日韩有码在线播放| 久久久亚洲国产| 日本成人在线视频网址| 久久亚洲国产精品| 成人国产精品久久久| 久久五月天色综合| 亚洲午夜av久久乱码| 亚洲第一精品自拍| 久久精品国产综合| 精品亚洲一区二区| 一本大道久久加勒比香蕉| 日韩精品视频免费专区在线播放| 亚洲免费影视第一页| 国产精品久久久久秋霞鲁丝| 国产亚洲精品久久| 国产精品一区二区久久国产| 正在播放亚洲1区| 欧美精品激情blacked18| 久久人人爽人人爽人人片av高请| 久久久久久久久久久网站| 韩剧1988在线观看免费完整版| 亚洲国产日韩欧美在线动漫| 国产精品视频白浆免费视频| 一区二区三区视频免费| 欧美成人激情图片网| 久久久www成人免费精品张筱雨| 欧美日韩成人在线观看| 国产91露脸中文字幕在线| 欧美自拍视频在线观看| 国产香蕉97碰碰久久人人| 日本免费一区二区三区视频观看| 欧美成人午夜激情在线| 欧美一区二粉嫩精品国产一线天| 色先锋资源久久综合5566| 欧美激情国内偷拍| 欧美性受xxxx白人性爽| 81精品国产乱码久久久久久| 成人中文字幕在线观看| 亚洲一区二区少妇| 亚洲一区精品电影| 91久久国产精品91久久性色| 成人日韩在线电影| 久久躁狠狠躁夜夜爽| 国产精品视频色| 亚洲成人黄色在线观看| 最新69国产成人精品视频免费| 欧美日韩午夜视频在线观看| 国产美女精品视频| 亚洲欧美中文字幕| 亚洲欧美日韩爽爽影院| 久久午夜a级毛片| 日韩有码在线观看| 97久久精品人搡人人玩| 亚洲爱爱爱爱爱| 久热在线中文字幕色999舞| 国产精品主播视频| 中文字幕亚洲欧美日韩在线不卡| 性欧美xxxx| 欧美在线亚洲一区| 国产91精品黑色丝袜高跟鞋| 国产精品免费福利| 国产精品入口免费视| 亚洲人成在线免费观看| 日韩国产欧美精品一区二区三区| 国产精品中文在线| 成人免费淫片视频软件| 伊人伊成久久人综合网小说| 亚洲一区二区黄| 日韩在线视频国产| 欧美理论电影网| 国产成人拍精品视频午夜网站| 亚洲无av在线中文字幕| 中文字幕免费精品一区高清| 久久久999成人| 91免费人成网站在线观看18| 91精品啪aⅴ在线观看国产| 精品久久久av| 亚洲第一精品电影| 亚洲aaa激情| 亚洲人成人99网站| 91国产精品视频在线| 91高潮精品免费porn| 亚洲欧美中文日韩在线v日本| 久久久久久久久爱| 精品中文字幕视频| 亚洲一区二区三区777| 欧美怡红院视频一区二区三区| 久久久精品日本| 成人精品视频99在线观看免费| 福利视频导航一区| 91精品国产自产91精品| 色婷婷av一区二区三区在线观看| 欧美—级a级欧美特级ar全黄| 亚洲成人久久一区|