91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

android中RecyclerView怎么用

發布時間:2021-11-23 09:33:49 來源:億速云 閱讀:169 作者:小新 欄目:開發技術

小編給大家分享一下android中RecyclerView怎么用,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

為了讓RecyclerView可以在所有的Android版本中都能使用,Android開發團隊將RecyclerView定義在support.v7包當中。在使用該控件時需要打開當前Modile的build.gradle文件,然后在dependencies節點中添加依賴庫的代碼。具體代碼如下:
compile 'com.android.support:recyclerview-v7:插入版本號'
添加完成以后需要單擊右上角的Sync Now進行同步。同步完成后可以在布局文件中添加RecyclerView控件,語法格式如下:

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

控制RecyclerView需要一些常用的方法,具體方法如下:
◆ setLayoutManager:設置列表項的布局管理器,LinearLayoutManager為線性布局管理器、GridLayoutManager為網格布局管理器、StaggeredGridLayoutManager為瀑布流網格布局管理器。
◆ setItemAnimator:設置列表項增加或者是刪除時的動畫,可以使用關鍵字new創建 DefaultItemAnimator()對象實現系統默認的動畫效果。
◆ addItemDecoration:添加列表項分割線。
◆ addOnItemTouchListener:添加列表項的觸摸監聽器。
◆ removeOnItemTouchListener:移除列表項的觸摸監聽器。
◆ setAdapter:設置列表項的適配器,使用RecyclerView.Adapter。
RecyclerView.Adapter是為RecyclerView所單獨設計的適配器類,RecyclerView.Adapter的相關方法如下:
◆ getItemCount:獲取列表項的數目。
◆ onBindViewHolder:綁定列表項中所顯示的數據。
◆ onCreateViewHolder:在該方法中可以加載列表item(子項)中的布局文件。
下面通過一個具體的實例演示RecyclerView垂直列表的具體應用。
實例07    模擬QQ消息列表    實例位置:光盤\Code\SL\27\07
視頻位置:光盤\Video
在Android Studio中創建Module,名稱為“QQMessageList”,具體步驟如下:
(1)打開build.gradle(Module: QQMessageList)文件,然后在該文件中的dependencies節點中添加依賴庫的代碼。
(2)修改新建Module的res/layout目錄下的布局文件activity_main.xml,將默認添加的布局管理器修改為相對布局管理器并將TextView組件刪除,然后添加1個RecyclerView組件用于顯示消息列表。具體代碼如下:

01  <?xml version="1.0" encoding="utf-8"?>
02  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
03      xmlns:app="http://schemas.android.com/apk/res-auto"
04      xmlns:tools="http://schemas.android.com/tools"
05      android:layout_width="match_parent"
06      android:layout_height="match_parent"
07      tools:context="com.mingrisoft.MainActivity">
08      <!--列表控件-->
09      <android.support.v7.widget.RecyclerView
10          android:id="@+id/recyclerview"
11          android:background="#EEEEEE"
12          android:layout_width="match_parent"
13          android:layout_height="wrap_content"
14          android:orientation="vertical"
15          />
16  </RelativeLayout>

(3)在res/layout目錄中創建1個名稱為layout_item.xml的布局文件,將默認添加的布局管理器修改為相對布局管理器,首先添加1個ImageView組件用于顯示頭像的圖標,然后添加1個垂直線性布局管理器,在該布局管理器中添加2個TextView組件分別用于顯示名稱與文字消息。具體代碼如下:

01  <?xml version="1.0" encoding="utf-8"?>
02  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
03      android:layout_width="match_parent"
04      android:layout_height="50dp"
05      android:layout_marginBottom="1dp"
06      android:background="@android:color/white"
07      android:gravity="center_vertical">
08      <!--圖標-->
09      <ImageView
10          android:id="@+id/img"
11          android:layout_width="50dp"
12          android:layout_height="50dp"
13          android:layout_alignParentLeft="true"
14          android:layout_alignParentStart="true"
15          android:layout_alignParentTop="true" />
16      <LinearLayout
17          android:layout_width="wrap_content"
18          android:layout_height="match_parent"
19          android:layout_toRightOf="@+id/img"
20          android:gravity="center_vertical"
21          android:orientation="vertical">
22          <!--名稱-->
23          <TextView
24              android:id="@+id/name"
25              android:layout_width="match_parent"
26              android:layout_height="wrap_content"
27              android:layout_marginLeft="20dp"
28              android:textColor="#000000"
29              android:textSize="15dp" />
30          <!--消息-->
31          <TextView
32              android:id="@+id/info"
33              android:layout_width="match_parent"
34              android:layout_height="wrap_content"
35              android:layout_marginLeft="20dp"
36              android:layout_marginRight="15dp"
37              android:singleLine="true"
38              android:textSize="10dp" />
39      </LinearLayout>
40  </RelativeLayout>

(4)在res/values目錄中的strings.xml字符串資源文件內添加名字與文字消息,用于顯示在列表當中。
(5)在com.mingrisoft包中創建1個名稱為Adapter的Java類,首先在該類中創建1個名稱為MyViewHolder的內部類并讓該類繼承自RecyclerView.ViewHolder,在該內部類中獲取列表中用于顯示名稱、頭像圖標與文字信息的組件。然后讓Adapter類繼承自RecyclerView.Adapter<Adapter.MyViewHolder>并且實現相對應的方法。具體代碼如下:

01  public class Adapter extends RecyclerView.Adapter<Adapter.MyViewHolder> {
02      @Override
03      public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
04          return null;
05      }
06      @Override
07      public void onBindViewHolder(MyViewHolder holder, int position) {
08      }
09      @Override
10      public int getItemCount() {
11          return 0;
12      }
13      class MyViewHolder extends RecyclerView.ViewHolder {
14          public TextView name, info;              //編號文字
15          public ImageView img;                     //圖標
16  
17          //獲取相關控件
18          public MyViewHolder(View itemView) {
19              super(itemView);
20              name = (TextView) itemView.findViewById(R.id.name);
21              info = (TextView) itemView.findViewById(R.id.info);
22              img = (ImageView) itemView.findViewById(R.id.img);
23          }
24      }
25  }

(6)創建3個int類型的數組分別用于保存頭像的圖標資源、名字、文字信息,然后創建3個ArrayList集合分別用于保存數組中的資源文件,最后創建1個Adapter構造方法,在該方法中設置菜單行數與行內圖標、名稱與文字信息具體代碼如下:

01  //圖標數組
02  private int[] icons = {
03          R.mipmap.icon_1, R.mipmap.icon_2, R.mipmap.icon_3,
04          R.mipmap.icon_4, R.mipmap.icon_5, R.mipmap.icon_6,
05          R.mipmap.icon_7, R.mipmap.icon_8, R.mipmap.icon_9,
06          R.mipmap.icon_10, R.mipmap.icon_11
07  };
08  //名字數組,引用資源文件中的文字
09  private int[] names = {
10          R.string.name1, R.string.name2, R.string.name3,
11          R.string.name4, R.string.name5, R.string.name6,
12          R.string.name7, R.string.name8, R.string.name9,
13          R.string.name10, R.string.name11
14  };
15  //信息數組
16  private int[] infos = {
17          R.string.info1, R.string.info2, R.string.info3,
18          R.string.info4, R.string.info5, R.string.info6,
19          R.string.info7, R.string.info8, R.string.info9,
20          R.string.info10, R.string.info11
21  };
22  private Context lContext;   //上下文
23  private List<Integer> listIcon = new ArrayList<Integer>();   //圖標集合
24  private List<Integer> listName = new ArrayList<Integer>();   //名稱集合
25  private List<Integer> listInfo = new ArrayList<Integer>();   //信息集合
26  public Adapter(Context context) {
27      lContext = context;
28      //設置菜單行數與行內圖標、名稱、信息
29      for (int i = 0; i < 11; i++) {
30          listIcon.add(icons[i]);
31          listName.add(names[i]);
32          listInfo.add(infos[i]);
33      }
34  }

(7)重寫MyViewHolder onCreateViewHolder()方法,在該方法中實現獲取列表中,每行item的布局文件。修改后代碼如下:

01  @Override
02  public MyViewHolder onCreateViewHolder(ViewGroup arg0, int arg1) {
03      //獲取列表中,每行的布局文件
04      View view = LayoutInflater.from(lContext).inflate(R.layout.layout_item, arg0, false);
05      MyViewHolder holder = new MyViewHolder(view);           //
06      return holder;
07  }

(8)重寫onBindViewHolder()方法,在該方法中設置列表菜單中item(子項)所顯示的內容。修改后代碼如下:

01  @Override
02  public void onBindViewHolder(final MyViewHolder holder, int position) {
03      //設置圖標
04      holder.img.setBackgroundResource(listIcon.get(position));
05      //設置名稱
06      holder.name.setText(listName.get(position));
07      //設置信息
08      holder.info.setText(listInfo.get(position));
09  }``

(9)重寫getItemCount()方法,在該方法中實現返回數據集中的項目總數。修改后代碼如下:

01  @Override
02  public int getItemCount() {
03      return listIcon.size();
04  }

(10)打開主活動MainActivity.java文件,定義所需要的全局變量,在onCreate()方法中首先獲取RecyclerView組件,然后為其設置列表布局管理器,最后為其設置適配器。具體代碼如下:

01  public class MainActivity extends AppCompatActivity {
02      private RecyclerView lRecyclerView;     //列表控件
03      private Adapter lAdapter;                //適配器
04      @Override
05      protected void onCreate(Bundle savedInstanceState) {
06          super.onCreate(savedInstanceState);
07          setContentView(R.layout.activity_main);
08          //獲取列表控件
09          lRecyclerView = (RecyclerView) findViewById(R.id.recyclerview);
10          //設置列表布局管理
11          lRecyclerView.setLayoutManager(new LinearLayoutManager(this));
12          //設置適配器
13          lRecyclerView.setAdapter(lAdapter = new Adapter(this));
14      }
15  }

(10)在工具欄中,找到 下拉列表框,然后單擊要運行的應用(這里為QQMessageList),再單擊右側的 運行按鈕,運行效果如圖27.27所示。
android中RecyclerView怎么用
圖27.27  模擬QQ消息列表

看完了這篇文章,相信你對“android中RecyclerView怎么用”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海林市| 河间市| 尤溪县| 额敏县| 三明市| 二手房| 平舆县| 印江| 周口市| 柳河县| 敖汉旗| 沭阳县| 陇川县| 定襄县| 梅州市| 同德县| 阿克| 精河县| 绥江县| 岚皋县| 札达县| 麦盖提县| 九龙县| 江口县| 都昌县| 安泽县| 裕民县| 肥东县| 洛浦县| 绿春县| 翼城县| 饶平县| 临沭县| 兰坪| 海盐县| 绿春县| 安顺市| 光泽县| 呈贡县| 高陵县| 化隆|