2015年10月28日 星期三

CardView, RecyclerView

CardView, RecyclerView example

使用新版的 RecyclerVeiw 需要先加入 :


compile 'com.android.support:cardview-v7:23.0.1'
compile 'com.android.support:recyclerview-v7:23.0.1'

跟這次要用的 cardview


之後就可以在 layout.xml 新增一個 recyclerview



之後到 main  find 它使用

recyclerView = (RecyclerView) findViewById(R.id.rv);

這裡跟 listview 比較特別的地方是要去設定 layoutmanager

recyclerView.setLayoutManager(new LinearLayoutManager(this));

然後就可以等 setadapter ()

Cardview


開一個 class 繼承 recyclerview.adapter

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {}

viewholder 部分繼承 Recyclerview.ViewHolder

public static class ViewHolder
        extends RecyclerView.ViewHolder
{}

然後 implent methods


oncreateviewholder 部分去指定自訂的 layout

View v = LayoutInflater.from(context).inflate(R.layout.cardview,parent,false);

回傳回 holder

return new ViewHolder(v);



cardviewlayout 部分這裡開一個叫 cardview.xml 來自訂


範例包了兩個 textview, imageview


cardview 比起 listview 多了可以設定圓角

card_view:cardCornerRadius="25dp"

還有陰影

card_view:cardElevation="100dp"

然後回到 adapter 的 viewholder  find 上圖


資料部分範例用 android query 取得 url 資料


這裡使用一個 cardviewitems 去處理收到的資料

回到 apadter 的 bindviewholder 把 find 好的物件塞進去處理好的值就差不多了


recyclerView.setAdapter(myAdapter);

數量就依照抓到的資料來自動產生

public int getItemCount() {
    return cardViewAdapters.size();}

build 樣子


之後只要後端更改卡片也會跟著產生了

沒有留言:

張貼留言