各位看官們,大家好,上一回中咱們說的是Android中UI控件之RecyclerView基礎的例子,這一回咱們說的例子是UI控件之RecyclerView變化。閑話休提,言歸正轉。讓我們一起Talk Android吧!
看官們,我們在本章回中主要介紹RecyclerView的變化:橫向滾動顯示。這是RecyclerView的優勢,也是ListView望塵莫及的地方。這也是ListView被取代的原因之一。在介紹該内容之前,我們對RecyclerView的基礎内容再做一點補充:
RecyclerView
中的事件處理。(因為上一章回的内容太多了,是以把事件處理放到了這裡)
事件處理是經常使用的功能,幾乎每個元件都有該功能,不過RecyclerView沒有直接提供該功能,也就是說它不能像ListView一樣設定事件監聽器,因為它沒有提供相關的事件監聽器。有看官說:是不是
RecyclerView
不能處理事件呢?不是,它把事件處理交給了它包含的其它元件,也就是說它間接地提供了事件處理功能。是不是覺得有點繞呢?沒關系,接下來我們看看代碼:
mListView.setOnItemClickListener //這是ListView在設定事件監聽器
public CustomViewHolder(View v){
super(v);
//擷取TextView元件并且給它設定事件監聽器
tv =(TextView) v.findViewById(R.id.id_recy_view_item_text);
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(),tv.getText()+"
is clicked.",Toast.LENGTH_LONG).show();
}
});
}
大家還記得上一章回中
ViewHolder
的構造函數吧,我們在構造函數裡擷取了TextView元件,然後給它設定了事件監聽器,這就相當于間接地給
RecyclerView
設定了事件監聽器。因為TextView元件被包含在RecyclerView元件中,它可以看作是RecyclerView元件的一部分。我們再推廣一下,隻要是給包含于RecyclerView元件中的元件設定了事件監聽器,就相當于給RecyclerView設定了事件監聽器。好了,關于RecyclerView元件中事件處理的内容就介紹這些,接下來回歸本章回的主題。
RecyclerView在處理橫向滾動顯示方面比較容易,因為它借助了布局管理器,下面是具體的代碼,請參考:
mLinearLayoutManager = new LinearLayoutManager(MainActivity.this);
// 使用布局管理器的setOrientation方法修改布局的Orientation屬性
mLinearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
mRecyclerView.setLayoutManager(mLinearLayoutManager);
這裡有看官驚訝地說:這就實作了?是的,不過還需要對
RecyclerView
包含的布局檔案做一些小處理,主要是修改布局中元件的長寬屬性,以便它們可以橫向顯示。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<!-- android:layout_width="match_parent" -->
android:layout_width="60dp"
android:layout_height="wrap_content">
<TextView
android:id="@+id/id_recy_view_item_text"
android:layout_width="50dp"
android:layout_height="wrap_content"/>
</LinearLayout>
上面的代碼就是包含于RecyclerView元件中布局檔案的源代碼,其中注釋掉的内容用來縱向滾動顯示。此外,剛才我們添加事件的的
TextView
元件,就是該布局檔案中的
TextView
元件,大家從代碼中也可以看出來。下面是程式的運作結果,請大家參考:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TPB9kZ0dkYoJ1MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TOyMzNwAjMxITMxYDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
各位看官,關于Android中UI控件之RecyclerView變化的例子咱們就介紹到這裡,欲知後面還有什麼例子,且聽下回分解!