在Eclipse中使用RecyclerView(一)

AndroidStudio中使用RecyclerView很方便,在build.gradle文件中進行配置,引入該類即可。

compile 'com.android.support:recyclerview-v7:23.4.0'

現在項目中需要使用到RecyclerView,但是這個項目之前是使用Eclipse開發的,如果再切換到AndroidStudio比較麻煩,直接引入

<android.support.v7.widget.RecyclerView
    android:id="@+id/rvView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

直接這樣使用的時候,App崩潰,出現下面的異常提示:

02-23 09:08:51.449: E/AndroidRuntime(10543): Caused by: android.view.InflateException: Binary XML file line #87: Error inflating class android.support.v7.widget.RecyclerView

有點奇怪,明明有導入android-support-v7-appcompat這個Library,在其它地方使用這個包裏的控件是正常的,爲什麼使用RecyclerView就不行呢?

在網上查了一些資料,發現如果需要在Eclipse中使用RecyclerView,目前只能使用21.0.0版本,因爲在此之後的版本RecyclerView配置了attr文件,而Eclipse不支持這種文件格式。

我們需要找到21.0.0版本對應的recyclerview.jar文件,怎麼樣查找呢?
以我的筆記本爲例,路徑是:
E:\Android\Tools\AndroidStudio\sdk\extras\android\m2repository\com\android\support\recyclerview-v7\21.0.0,找到這個目錄下recyclerview-v7-21.0.0.aar文件。
路徑

將recyclerview-v7-21.0.0.aar文件後綴名改爲.rar,然後解壓,裏面的classes.jar就是recyclerview對應的jar包。

把jar包放入項目中的libs文件夾下,就可以使用RecyclerView了。爲了方便,重命名爲android-support-v7-recyclerview.jar。

導入jar包之後,沒有出現之前那個異常,但App還是掛掉,異常提示信息如下:

02-23 11:19:34.589: E/AndroidRuntime(15163): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView$LayoutManager.onMeasure(android.support.v7.widget.RecyclerView$Recycler, android.support.v7.widget.RecyclerView$State, int, int)' on a null object reference

空指針異常?這是沒有設置LayoutManager的緣故,設置完之後就可以正常運行了。

LinearLayoutManager layoutManager = new LinearLayoutManager(mContext);
layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
rvView.setLayoutManager(layoutManager);

到這裏,終於可以正常使用RecyclerView了。

謝謝同志們的的分享,參考資料:
http://blog.csdn.net/w815878564/article/details/52947650
http://blog.csdn.net/t_an123/article/details/51733188

發佈了78 篇原創文章 · 獲贊 49 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章