溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在Android 應(yīng)用中利用RecyclerView實(shí)現(xiàn)一個(gè)網(wǎng)格布局

發(fā)布時(shí)間:2020-12-01 15:09:18 來(lái)源:億速云 閱讀:262 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)怎么在Android 應(yīng)用中利用RecyclerView實(shí)現(xiàn)一個(gè)網(wǎng)格布局,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".MainActivity">

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

message_main_notice_list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="150dp"
  android:gravity="center"
  android:background="@color/colorAccent"
  android:orientation="vertical"
  android:layout_marginTop="5dp"
  >

  <ImageView
    android:id="@+id/iv_image"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:background="@mipmap/logo"
    android:gravity="center"></ImageView>

  <LinearLayout
    android:layout_width="60dp"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingLeft="5dp">

    <TextView
      android:id="@+id/tv_title"
      android:layout_width="match_parent"
      android:layout_height="30dp"
      android:gravity="center"
      android:text="BIBIA"></TextView>
  </LinearLayout>
</LinearLayout>

適配器MyRecyclerViewAdapter.java:

package com.example.administrator.recyclerviewtest;

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 java.util.List;

public class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.ViewHolder>{
  private List<ItemBean> mList;

  static class ViewHolder extends RecyclerView.ViewHolder{
    View myView;
    ImageView imageView;
    TextView title;
    public ViewHolder(View itemView) {
      super(itemView);
      myView = itemView;
      imageView = (ImageView) itemView.findViewById(R.id.iv_image);
      title = (TextView) itemView.findViewById(R.id.tv_title);
    }
  }

  public MyRecyclerViewAdapter(List<ItemBean> list){
    this.mList = list;
  }

  @Override
  public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.message_main_notice_list,null);
    final ViewHolder holder = new ViewHolder(view);
    return holder;
  }

  //將數(shù)據(jù)綁定到控件上
  @Override
  public void onBindViewHolder(ViewHolder holder, int position) {
    ItemBean bean = mList.get(position);
    holder.imageView.setBackgroundResource(bean.itemImage);
    holder.title.setText(bean.itemTitle);
  }

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


  //下面兩個(gè)方法提供給頁(yè)面刷新和加載時(shí)調(diào)用
  public void add(List<ItemBean> addMessageList) {
    //增加數(shù)據(jù)
    int position = mList.size();
    mList.addAll(position, addMessageList);
    notifyItemInserted(position);
  }

  public void refresh(List<ItemBean> newList) {
    //刷新數(shù)據(jù)
    mList.removeAll(mList);
    mList.addAll(newList);
    notifyDataSetChanged();
  }
}

主方法:

package com.example.administrator.recyclerviewtest;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class MainActivity extends AppCompatActivity {

  private RecyclerView recyclerView;

  private List<ItemBean> list;

  private MyRecyclerViewAdapter myAdapte1r;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    list = new ArrayList<ItemBean>();
    for ( int i=0; i< 19;i++){
      list.add(new ItemBean(
          R.mipmap.logo,
          "Hello",
          new Date().toString()+""
      ));
    }
    myAdapte1r = new MyRecyclerViewAdapter(list);

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

    //縱向線性布局
    //LinearLayoutManager layoutManager = new LinearLayoutManager(this);

    //縱向線性布局
    GridLayoutManager layoutManager = new GridLayoutManager(this,2);

    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setAdapter(myAdapte1r);
  }
}

以上就是怎么在Android 應(yīng)用中利用RecyclerView實(shí)現(xiàn)一個(gè)網(wǎng)格布局,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI