亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

RecyclerView 通用Adapter和通用ViewHolder

標簽:
Android

背景

在使用RecyclerView时,经常需要针对特定的页面写viewHolder,相当繁琐。后来看到项目中采用了统一通用的viewHolder,使用相当简单。为了更加通用,对原有代码进行了抽象简化,做成了一个依赖库,直接调用即可。

先上效果图:

webp

开源代码地址(一共四个类):

https://github.com/cxyzy1/commonViewHolder

  • 通用adapter基础类:BaseCommonAdapter

  • 多布局通用adapter:MultipleCommonAdapter

  • 单布局通用adapter:SimpleCommonAdapter

  • 通用viewHolder:ViewHolder

使用方法:

  1. 工程根目录下build.gradle文件添加:

allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
}
  1. app工程下build.gradle文件添加依赖:

dependencies {
            implementation 'com.github.cxyzy1:commonViewHolder:0.0.2'
    }
  1. 调用样例:

List<String> data = prepareData();
RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(prepareAdapter(data));private SimpleCommonAdapter<String> prepareAdapter(List<String> data) {        return new SimpleCommonAdapter<String>(data, android.R.layout.simple_list_item_1) {            @Override
            protected void onBindViewHolder(ViewHolder holder, String data, int position) {
                holder.setText(android.R.id.text1, data)
                        .setTextColor(android.R.id.text1, Color.RED)
                        .setOnItemClickListener((view) ->
                                Toast.makeText(MainActivity.this, String.valueOf(position), Toast.LENGTH_SHORT).show()
                        );
            }
        };
    }    
private List<String> prepareData() {
    List<String> data = new ArrayList<>(100);    for (int i = 0; i < 100; i++) {
        data.add("text-" + i);
    }    return data;
}



作者:程序园中猿
链接:https://www.jianshu.com/p/4670ca0ae832


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消