萬能RecyclerView的數據適配器BaseRecyclerViewAdapterHelper


今天樓主才發現github上有這么一個好用的開源代碼,充滿好奇心的樓主馬上使用了,特地分享給大家。

此項目的github地址:

https://github.com/CymChad/BaseRecyclerViewAdapterHelper

項目優點:


 優化了Adapter代碼,減少了代碼量

    添加Item事件
        Item的點擊事件
        Item的長按事件
        Item子控件的點擊事件
        Item子控件的長按事件

    添加列表加載動畫

      一行代碼輕松切換5種默認動畫。

    添加頭部、尾部

      一行代碼搞定,感覺又回到ListView時代。

    自動加載

      上拉加載無需監聽滑動事件,可自定義加載布局,顯示異常提示,自定義異常提示。

    添加分組

      隨心定義分組頭部。

    自定義不同的item類型

      簡單配置、無需重寫額外方法。

    設置空布局

      比Listview的setEmptyView還要好用。

    添加拖拽、滑動刪除

      開啟,監聽即可,就是這么簡單。

    分組的伸縮欄

      比ExpandableListView還要強大,支持兩級。

    自定義ViewHolder

      支持自定義ViewHolder,讓開發者隨心所欲。

使用集成步驟:

 

先在 build.gradle(Project:XXXX) 的 repositories 添加:

	allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}

然后在 build.gradle(Module:app) 的 dependencies 添加:

	dependencies {
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:VERSION_CODE'
}
VERSION_CODE:--替換: 
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.17'

 

MainActivity

 

 

package top.wintp.colorfuldemo; import android.animation.Animator; import android.animation.ObjectAnimator; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.Toast; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.animation.BaseAnimation; import java.util.ArrayList; /** * 作者: 你的感冒清 * <p> * qq: 337081267 * <p> * CSDN: http://blog.csdn.net/pyfysf * <p> * 個人博客: http://wintp.top * <p> * 時間: 17-5-27 * <p> * 郵箱: pyfysf@163.com */ public class MainActivity extends AppCompatActivity { private RecyclerView mRecyclerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRecyclerView = (RecyclerView) findViewById(R.id.rlv); //創建數據 ArrayList<String> strings = new ArrayList<>(); for (int i = 0; i < 100; i++) { strings.add("test" + i); } //創建數據適配器 QuickAdapter myAdapter = new QuickAdapter(R.layout.item_recycler, strings); //設置布局管理者 mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); mRecyclerView.setAdapter(myAdapter); //設置動畫 // myAdapter.openLoadAnimation(BaseQuickAdapter.ALPHAIN); //設置自定義動畫 myAdapter.openLoadAnimation(new BaseAnimation() { @Override public Animator[] getAnimators(View view) { return new Animator[]{ ObjectAnimator.ofFloat(view, "scaleY", 1, 1.1f, 1), ObjectAnimator.ofFloat(view, "scaleX", 1, 1.1f, 1) }; } }); myAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { @Override public void onItemClick(BaseQuickAdapter adapter, View view, int position) { Toast.makeText(MainActivity.this, "itemclick", Toast.LENGTH_SHORT).show(); } }); myAdapter.setOnItemLongClickListener(new BaseQuickAdapter.OnItemLongClickListener() { @Override public boolean onItemLongClick(BaseQuickAdapter adapter, View view, int position) { Toast.makeText(MainActivity.this, "setOnItemLongClickListener", Toast.LENGTH_SHORT).show(); return false; } }); myAdapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() { @Override public void onLoadMoreRequested() { Toast.makeText(MainActivity.this, "setOnLoadMoreListener", Toast.LENGTH_SHORT).show(); } }); // myAdapter.addFooterView(); // myAdapter.addHeaderView(); } } 


activity.xml

 

 

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v7.widget.RecyclerView android:id="@+id/rlv" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout> 


使用RecyclerView:需要添加依賴

 

 

在 build.gradle(Module:app) 的 dependencies 添加:

	dependencies {
    compile 'com.android.support:recyclerview-v7:25.3.1'

}

 

數據適配器代碼:

 

 

package top.wintp.colorfuldemo; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; import java.util.ArrayList; /** * * 作者: 你的感冒清 * * qq: 337081267 * * CSDN: http://blog.csdn.net/pyfysf * * 個人博客: http://wintp.top * * 時間: 17-5-27 * * 郵箱: pyfysf@163.com */ public class QuickAdapter extends BaseQuickAdapter<String, BaseViewHolder> { public QuickAdapter(int item_recycler, ArrayList<String> strings) { super(item_recycler, strings); } @Override protected void convert(BaseViewHolder helper, String item) { helper.setText(R.id.tv_item, item); } } 


item布局

 

 

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/tv_item" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp" android:gravity="center" android:textColor="#f00" android:textSize="20sp"/> </LinearLayout>

 

 

 

 

 

更多功能還請訪問該項目的github網址。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM