1. 程式人生 > >Android開發之RecyclerView(一)初步使用

Android開發之RecyclerView(一)初步使用

首先要感謝前面的大佬們的總結,給了我站在巨人肩膀上的機會。文中有不對的地方還望大佬指出,如有大佬覺的侵權的地方還望指出,鄙人將以最快速度修改!好了,話不多少了,開始開車!

第一步:匯入RecyclerView

compile 'com.android.support:recyclerview-v7:26.+'
這裡對於初次瞭解的人有一點要注意,v7包後面的版本號需要和
compile 'com.android.support:appcompat-v7:26.+'
保持一致,以免報錯;
第二步:就是直接再佈局中引用,和listview用法基本一樣;
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview" android:layout_width="match_parent" android:layout_height="match_parent" />
第三步:在程式碼中呼叫,這裡要注意了,由於RecyclerView的靈活性,可以通過程式碼控制不同的展示樣式,人狠話不多,直接粘程式碼,具體如下:
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerview;
    private List<Map<String
,Object>> list; private MyAdapter adapter; private LinearLayoutManager layoutManager; private GridLayoutManager gridLayoutManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerview
= (RecyclerView) findViewById(R.id.recyclerview); list = getData(); //建立預設的線性LayoutManager,樣式類似於ListView
layoutManager=new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
        recyclerview.setLayoutManager(layoutManager);

        /*//建立預設的表格GridLayoutManager,樣式類似於GridView,這裡可以直接使用數字控制每行展示的列數
        gridLayoutManager=new GridLayoutManager(this,2);
        recyclerview.setLayoutManager(gridLayoutManager);*/
//如果可以確定每個item的高度是固定的,設定這個選項可以提高效能
recyclerview.setHasFixedSize(true);

        //建立並設定Adapter
adapter = new MyAdapter(list);
        //adapter.addData(1);
adapter.deleateData(20);
        recyclerview.setAdapter(adapter);
  
        //設定分隔線
recyclerview.addItemDecoration(new DividerItemDecoration(this , DividerItemDecoration.HORIZONTAL));

        //設定增加或刪除條目動畫
recyclerview.setItemAnimator(new DefaultItemAnimator());


    }
public List<Map<String,Object>> getData() {
list=new ArrayList<>();
        for (int i=0;i<21;i++){
Map<String,Object> map= new HashMap<>();
            map.put("image",R.mipmap.ic_launcher);
            map.put("name","fuck");
            list.add(map);
        }
return list;
    }
}
第四步,給RecyclerView建立adapter,就不廢話了,直接貼上程式碼
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{
private List<Map<String,Object>> list;

    public MyAdapter(List<Map<String,Object>>list) {
this.list = list;
    }
//給adapter添加布局載入
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.recyitem_layout,parent,false);
        ViewHolder vh=new ViewHolder(view);
        return vh;
    }
public void onBindViewHolder(final ViewHolder holder,final int position) {
//使用adapter裡面的控價進行展示操作
holder.iv_show.setImageResource(R.mipmap.ic_launcher);
        holder.tv_show.setText("基佬");
    }
@Override
public int getItemCount() {
return list.size();
    }
public static class ViewHolder extends RecyclerView.ViewHolder{
TextView tv_show;
        ImageView iv_show;
        public ViewHolder(View itemView) {
super(itemView);

            tv_show=itemView.findViewById(R.id.tv_show);
            iv_show=itemView.findViewById(R.id.iv_show);
        }
    }
第五步;展示adapter
//建立並設定Adapter
adapter = new MyAdapter(list);
//adapter.addData(1);
adapter.deleateData(20);
recyclerview.setAdapter(adapter);

本期結束,第一次寫部落格,有錯誤和不足請多多包涵,謝謝!
下一期Android開發之RecyclerView(二)同一控價多樣式佈局