Android中如何使用RecyclerView滾動(dòng)控件-創(chuàng)新互聯(lián)

Android中如何使用RecyclerView滾動(dòng)控件,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

成都創(chuàng)新互聯(lián)專業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專業(yè)提供成都服務(wù)器托管,服務(wù)器租用,四川聯(lián)通機(jī)房服務(wù)器托管,四川聯(lián)通機(jī)房服務(wù)器托管,成都多線服務(wù)器托管等服務(wù)器托管服務(wù)。

RecyclerView的使用比ListView的使用是比較復(fù)雜的,ListView的使用是五個(gè)步驟,而我們的RecyclerView的使用有7個(gè)步驟,分別為:

1.在當(dāng)前項(xiàng)目的build.gradle中的dependencies閉包中加入compile ‘com.android.support.recyclerview-v7:xx.x.x'(x是當(dāng)前最新版本)
2.布局加入RecyclerView控件以及創(chuàng)建子項(xiàng)布局和適配器類。
3.創(chuàng)建適配器
4.定義數(shù)據(jù)源
5.通過(guò)findViewById找RecylerView列表控件
6.通過(guò)setLayoutManager()為RecylerView設(shè)置布局管理器
7.通過(guò)setAdapter()設(shè)置適配器**

下面我們就利用代碼或圖片一一的細(xì)說(shuō)每個(gè)步驟:

**第一步:在當(dāng)前項(xiàng)目的build.gradle中的dependencies閉包中加入compile ‘com.android.support.recyclerview-v7:xx.x.x'(x是當(dāng)前最新版本)。

因?yàn)锳ndroid將RecyclerView定義在support庫(kù)中,想要使用該控件就必須要添加相應(yīng)的依賴庫(kù)才可以的。所以就有了第一步的操作。咱們這里介紹兩種添加庫(kù)依賴的方法:**

1.直接在文件中手動(dòng)添加,步驟也是用手動(dòng)添加

Android中如何使用RecyclerView滾動(dòng)控件

添加完成后記得保存,然后點(diǎn)擊以下Sync Now進(jìn)行同步。 什么?什么?Sync Now不知道在哪里?0.0

Android中如何使用RecyclerView滾動(dòng)控件

2.打開布局文件:

Android中如何使用RecyclerView滾動(dòng)控件
Android中如何使用RecyclerView滾動(dòng)控件

當(dāng)系統(tǒng)添加完的時(shí)候,你會(huì)發(fā)現(xiàn)布局界面還是沒(méi)有任何東西,別著急!這時(shí)候你在次在選項(xiàng)欄中拖取RecyclerView控件到布局,你會(huì)發(fā)現(xiàn)出現(xiàn)以下界面,證明添加庫(kù)依賴成功,可以使用RecyclerView控件:

Android中如何使用RecyclerView滾動(dòng)控件 

相對(duì)第一種方法,第二種方法是比較便捷的,可以不需要手動(dòng)輸入和知道當(dāng)前版本,較少了出錯(cuò)率。

第二步:布局加入RecyclerView控件以及創(chuàng)建子項(xiàng)布局和適配器類。其實(shí)第一步咋們已經(jīng)說(shuō)過(guò)了,直接拖取控件到布局界面就行了。

- 那我們就去布局代碼看看,你會(huì)在布局代碼中發(fā)現(xiàn)如下代碼片段:

Android中如何使用RecyclerView滾動(dòng)控件
小伙伴們,發(fā)現(xiàn)其中的特點(diǎn)沒(méi)有?對(duì)的,就是RecyclerView怎么跟咱們的Button、TextView等控件的頭部標(biāo)簽寫法不一樣的?。?strong>那是因?yàn)镽ecyclerView 并不是內(nèi)置在系統(tǒng)SDK當(dāng)中,所以需要把完整的包路徑名android.support.v7.widget.RecyclerView寫出來(lái))。
注:直接拖取是沒(méi)有生成ID的,這里需要我們手動(dòng)添加,如果是手動(dòng)添加RecyclerView的小伙伴們記得要把完成包名路徑寫出來(lái)。

在布局文件中我們需要?jiǎng)?chuàng)建一個(gè)RecyclerView的子項(xiàng)布局,代碼如下:

Android中如何使用RecyclerView滾動(dòng)控件 

實(shí)現(xiàn)的預(yù)覽效果,我們?cè)谶@里讓界面實(shí)現(xiàn)左邊是圖片,右邊是文字:

Android中如何使用RecyclerView滾動(dòng)控件

咱們創(chuàng)建一個(gè)Fruit實(shí)體類,并添加構(gòu)造器和重寫get()方法:

Android中如何使用RecyclerView滾動(dòng)控件 

最后創(chuàng)建一個(gè)FruitAdapter適配器的類,讓適配器繼承RecyclerView.Adapter,并將泛型指定為FruitAdapter.ViewHolder。其中,ViewHolder是我們FruitAdapter中定義的一個(gè)內(nèi)部類。并重寫:onCreateViewHolder()、onBindViewHolder()、getItemCount()3個(gè)方法。全部代碼如下:

public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> {
   //定義集合
  private List<Fruit> mFruitList;

  //利用構(gòu)造器傳入數(shù)據(jù)
  public FruitAdapter(List<Fruit> FruitList) {
    this.mFruitList = FruitList;
  }

  //創(chuàng)建ViewHolder的實(shí)例
  // ①onCreateViewHolder()用于創(chuàng)建ViewHolder實(shí)例,并把加載的布局傳入到構(gòu)造函數(shù)
  @Override
  public FruitAdapet.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    //由于ViewHolder構(gòu)造器需要傳入子項(xiàng)布局View對(duì)象,因此需要實(shí)例化子項(xiàng)布局
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_fruit, parent, false);
    //創(chuàng)建ViewHolder對(duì)象
    ViewHolder viewHolder = new ViewHolder(view);
    //返回值
    return viewHolder;

  }

  //②onBindViewHolder()用于對(duì)RecyclerView子項(xiàng)的數(shù)據(jù)進(jìn)行賦值,會(huì)在每個(gè)子項(xiàng)被滾動(dòng)到屏幕內(nèi)的時(shí)候執(zhí)行
  @Override
  public void onBindViewHolder(final FruitAdapet.ViewHolder holder, int position) {
    //從集合中把水果對(duì)象拿出來(lái)
    Fruit fruit = mFruitList.get(position);
    //調(diào)用holder.ImageView對(duì)象設(shè)置圖片
    holder.imageView.setImageResource(fruit.getImageId());
    //調(diào)用holder.TextView對(duì)象設(shè)置文字
    holder.textView.setText(fruit.getName());

  }

  //③getItemCount()用于知道RecyclerView有多少子項(xiàng)
  @Override
  public int getItemCount() {

    return mFruitList.size();
  }

  //創(chuàng)建ViewHolder繼承RecyclerView.ViewHolder
  class ViewHolder extends RecyclerView.ViewHolder {
    ImageView imageView;
    TextView textView;


    //重寫ViewHolder
    public ViewHolder(View itemView) {
      super(itemView);
      //通過(guò)View對(duì)象的findViewById方法獲取到子項(xiàng)布局的控件保存在成員變量當(dāng)中
      imageView = (ImageView) itemView.findViewById(R.id.imageView);

      textView = (TextView) itemView.findViewById(R.id.textView);
    }
  }
}

3.在MainActivity中定義數(shù)據(jù)源 4定義適配器 

5.通過(guò)findViewById找RecylerView列表控件
6.通過(guò)setLayoutManager()為RecylerView設(shè)置布局管理器
7.創(chuàng)建適配器
8.通過(guò)setAdapter()設(shè)置適配器

public class MainActivity extends AppCompatActivity {
  private List<Fruit> fruitList;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //第三步:定義數(shù)據(jù)源,單獨(dú)利用一個(gè)方法
    fruitData();

    //第四步:創(chuàng)建適配器
    FruitAdapet adapet = new FruitAdapet(fruitList);

    //第五步:找布局控件
    RecyclerView recyclerView= (RecyclerView) findViewById(R.id.recyclerView);

    //第六步:通過(guò)setLayoutManager()為RecylerView設(shè)置布局管理器
    //設(shè)置為垂直方向
    //水平方向的參數(shù)為:(this,LinearLayoutManager.HORIZONTAL, false);
    LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this,
        LinearLayoutManager.VERTICAL,false);
    recyclerView.setLayoutManager(linearLayoutManager);

    //第七步:設(shè)置適配器
    recyclerView.setAdapter(adapet);
  }

  public void fruitData() {
    //創(chuàng)建一個(gè)集合保存數(shù)據(jù)
    fruitList = new ArrayList<>();
    //圖片我就用了幾張,然后讓他循環(huán)變換而已,小伙伴可以自己增加各式的圖片
    Fruit apple = new Fruit("蘋果", R.drawable.apple);
    fruitList.add(apple);
    Fruit banana = new Fruit("香蕉", R.drawable.banana);
    fruitList.add(banana);
    Fruit apple1 = new Fruit("蘋果", R.drawable.apple);
    fruitList.add(apple);
    Fruit banana1 = new Fruit("香蕉", R.drawable.banana);
    fruitList.add(banana);
    Fruit apple2 = new Fruit("蘋果", R.drawable.apple);
    fruitList.add(apple);
    Fruit banana2 = new Fruit("香蕉", R.drawable.banana);
    fruitList.add(banana);
    Fruit apple3 = new Fruit("蘋果", R.drawable.apple);
    fruitList.add(apple);
    Fruit banana3 = new Fruit("香蕉", R.drawable.banana);
    fruitList.add(banana);
    Fruit apple4 = new Fruit("蘋果", R.drawable.apple);
    fruitList.add(apple);
    Fruit banana4 = new Fruit("香蕉", R.drawable.banana);
    fruitList.add(banana);
  }
}

好了,RecyclerView的基本代碼就這這樣的,大家僅供參考。
其實(shí)RecyclerView還有點(diǎn)擊事件的,我這里就沒(méi)有寫了。如果后期小伙伴們需要可以添加上去。
其實(shí)這個(gè)也是實(shí)現(xiàn)瀑布流效果的代碼,如果咱們想要實(shí)現(xiàn)瀑布流效果,只需要把子項(xiàng)布局設(shè)置為只顯示圖片(瀑布流需要使用大小不同的圖片才能看出更好的效果),并調(diào)整一下布局參數(shù)就行了的。在布局設(shè)置布局管理中設(shè)置如下代碼:

//第一個(gè)參數(shù)用于指定布局的列數(shù)
//第二個(gè)參數(shù)用于指定布局的排列方向
   StaggeredGridLayoutManager layoutManager=new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL);
 recyclerView.setLayoutManager(layoutManager);

看完上述內(nèi)容,你們掌握Android中如何使用RecyclerView滾動(dòng)控件的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

本文標(biāo)題:Android中如何使用RecyclerView滾動(dòng)控件-創(chuàng)新互聯(lián)
鏈接地址:http://bm7419.com/article6/gegig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、企業(yè)建站、網(wǎng)站設(shè)計(jì)、網(wǎng)站排名、企業(yè)網(wǎng)站制作、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司