乙個RecyclerView寫出來的小Demo

2021-07-16 15:22:45 字數 4031 閱讀 6800

步驟:

1.在乙個相對布局裡面放乙個recyclerview,需要注意的是recyclerview是單獨存在於v7包中的,所以使用的時候需要單獨導包

2.在主函式中初始化recyclerview,給它設定adapter.

重點:其實recyclerview與listview相比的話,更重要的是它的復用性,所以在介面卡這塊的邏輯是不同的.

recyclerview的adapter:通過最下面的adapter**觀察就會發現,其實它們的**結構大同小異,而如果要改變recyclerview的結構的話只需要修改一點點**就可以了.比如:

需要線性布局的話使用linearlayoutmanager 

需要九宮格布局的話就使用gridlayoutmanager 

需要瀑布流布局的話就使用staggeredgridlayoutmanager 

另外:下面有對recyclerview的adapter中的方法做出注釋

大體**如下:

recyclerview = (recyclerview) findviewbyid(r.id.recycler);

//通常情況下這第二步是以下三種情況,選擇需要的型別

private view initlistview(boolean isver)

private view initgridview(boolean isver)

private view initstaggeredgridview(boolean isver)

//這裡我貼出它的三種adapter**,可以做個比較

recyclerview.setadapter(你想要的型別的介面卡);

listadapter :

package com.***.androidl.widget;

import android.content.context;

import android.support.v7.widget.recyclerview;

import android.view.layoutinflater;

import android.view.view;

import android.view.viewgroup;

import android.widget.imageview;

import android.widget.textview;

import com.itheima.androidl.r;

//繼承recyclerview自帶的adapter

public class listadapter extends recyclerview.adapter;

string names = ;

context context;

boolean flag;

public listadapter(context context, boolean flag)

@override

public listholder oncreateviewholder(viewgroup parent, int viewtype)

//給viewholder進行資料的繫結

@override

public void onbindviewholder(listholder holder, int position)

//設定item的數量

@override

public int getitemcount()

class listholder extends recyclerview.viewholder

public void setdata(int position) }}

gridadapter

package com.***.androidl.widget;

import android.content.context;

import android.support.v7.widget.recyclerview;

import android.view.layoutinflater;

import android.view.view;

import android.view.viewgroup;

import android.widget.imageview;

import android.widget.textview;

import com.itheima.androidl.r;

public class gridadapter extends recyclerview.adapter;

string names = ;

context context;

boolean flag;

public gridadapter(context context, boolean flag)

@override

public listholder oncreateviewholder(viewgroup parent, int viewtype)

@override

public void onbindviewholder(listholder holder, int position)

@override

public int getitemcount()

class listholder extends recyclerview.viewholder

public void setdata(int position)}}

staggeredgridadapter

package com.***.androidl.widget;

import android.content.context;

import android.support.v7.widget.recyclerview;

import android.view.layoutinflater;

import android.view.view;

import android.view.viewgroup;

import android.widget.imageview;

import android.widget.textview;

import com.itheima.androidl.r;

public class staggeredgridadapter extends recyclerview.adapter;

int iconsh = ;

public staggeredgridadapter(context context, boolean flag)

@override

public listholder oncreateviewholder(viewgroup parent, int viewtype)

@override

public void onbindviewholder(listholder holder, int position)

@override

public int getitemcount()

class listholder extends recyclerview.viewholder

public void setdata(int position) else

name.settext("this is position "+ position);}}

}

使用RecyclerView打造乙個相片廊

這次我們使用recyclerview這個強大的控制項來實現乙個相片廊,就是長這個模樣 一.自定義乙個view繼承recyclerview public class photogalleryview extends recyclerview implements galleryitemdecorati...

python寫乙個服務 Python寫乙個服務

coding utf 8 import json from urllib.parse import parse qs from wsgiref.server import make server 定義函式,引數是函式的兩個引數,都是python本身定義的,預設就行了。定義檔案請求的型別和當前請求成功...

寫乙個東東

最近打了幾天的三國無雙6,感覺不錯!很久很久以前,乙個小學同學帶了我到機室玩三國無雙。自此,我便喜歡上了這個遊戲。現在我玩的遊戲內有兩個 三國無雙和cs。ps 曾經有些怪我的這個好朋友帶我打遊戲,但現在想來,若不是他,我的童年又怎麼會有歡樂呢。人活著,快樂是最重要的.因為以前是用專用手柄打的,感覺非...