工作筆記 |(周記1)RecycleView使用

換新公司很久了,也很久沒有寫文章了(哎,新公司太壓榨人了QAQ,下班很晚)。以后盡量保持一周一更。最近打算整理一下來了新公司學的東西(哎,突然發(fā)現(xiàn)要學的東西太多了,記不住哇)
一. RecycleView的基本使用:
來了新公司后才慢慢的接觸了RecycleView,之前實習的公司還是用的listView和gridview,真是太落后了,慢慢接觸了RecycleView,發(fā)現(xiàn)這個控件真是太好用了。(自從用了RecycleView,腿也不痛了,腰也不酸了,上樓也有勁了)。
1.首先添加依賴
在gradle中添加依賴(盡量使用implementation吧,到今年年底,谷歌爸爸就不讓用compile了)

implementation 'com.android.support:recyclerview-v7:27.0.2'

2.在xml代碼中導入

<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>  

3.代碼中使用

mRecyclerView =   findViewById(R.id.recyclerView);//獲取recycleview的實例。

//設置recycleview的樣式,這里先以單行的垂直方向上為例。

mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));

//給RecycleView添加適配器,list定義一組數(shù)就可以,這里就不詳細貼出了。

mAdapter = new MyRecyclerViewAdapter(list);
mRecyclerView.setAdapter(mAdapter);

4.adapter中item的定義

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
      <TextView
             android:id="@+id/item_tx"
             android:layout_width="match_content"
             android:layout_height="wrap_content"
             android:gravity="center"
             android:padding="10dp"
             android:layout_gravity="center_horizontal"
             android:text="Item"/>
   </LinearLayout>

5.adapter的配置(重要部分)

public class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.ViewHolder> {
    private List<String> list;

    public MyAdapter(List<String> list) {
         this.list = list;
 }

   @Override
    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
         View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_base_use, parent, false);
         MyAdapter.ViewHolder viewHolder = new MyAdapter.ViewHolder(view);
         return viewHolder;
 }

   @Override
    public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {
         holder.mText.setText(list.get(position));
 }

   @Override
   public int getItemCount() {
         return list.size();
 }

  class ViewHolder extends RecyclerView.ViewHolder {
         TextView mText;
         ViewHolder(View itemView) {
             super(itemView);
            mText = itemView.findViewById(R.id.item_tx);
       }
   }
}

這個時候就可以運行出來了。
6.另外也可以用別的方式更換布局

設置水平布局,這里設置的是水平方向的,也可以設置成VERTICAL水平的。

  mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));

設置網(wǎng)格布局,這里的3,可以設置為3列。

  mRecyclerView.setLayoutManager(new GridLayoutManager(this, 3));

設置瀑布流布局,這個一般是用來顯示那些item高度不一的布局的

  mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL));

7.設置分割線
通過下面的方法就可以添加分割線,不過添加的是系統(tǒng)默認的,高度為2px,顏色為灰色。

  mRecyclerView.addItemDecoration(new RecycleViewDivider(mContext, LinearLayoutManager.VERTICAL));

可以添加自定義drawable的分割線

 mRecyclerView.addItemDecoration(new RecycleViewDivider(
          mContext, LinearLayoutManager.VERTICAL, R.drawable.divider_mileage));

添加自定義分割線的高度和顏色

mRecyclerView.addItemDecoration(new RecycleViewDivider(
           mContext, LinearLayoutManager.VERTICAL, 10, getResources().getColor(R.color.divide_gray_color)));

OK,這一章先講這么多,下一章介紹一下recycleView的點擊事件的處理。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容