继承BaseAdapter

同样也要继承BaseAdapter

public class ADUadapter extends BaseAdapter<ChatModel> {
    public Context context;
    protected ADUholder holder;
    public ADUadapter(Context context) {
        super();
        this.context = context;
    @Override
    protected void setItemChildListener(BaseViewHolder viewHolder) {
        super.setItemChildListener(viewHolder);
        if (viewHolder instanceof ADUholder){
            ADUholder adUholder = (ADUholder) viewHolder;
            baseViewHolderHelper.setItemChildClickListener(adUholder.imageView);
    @Override
    protected BaseViewHolder addViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false);
        return new ADUholder(view);
    @Override
    protected void fillData(RecyclerView.ViewHolder holder, final int position, final ChatModel item) {
        this.holder = (ADUholder) holder;
        this.holder.title.setText(item.name);
        this.holder.name.setText(item.mMsg);

重写setItemChildListener()

这里可以实现item子控件的点击效果,我们仅仅需要baseViewHolderHelper.setItemChildClickListener(adUholder.imageView);这里的参数就是我们让该控件实现点击效果。

在Activity中实现GIF中的效果

实现item点击效果

adUadapter.setOnItemClickListener(new BaseViewHolder.OnItemClickListener() {
            @Override
            public void onItemClick(View view, int position) {
                Toast.makeText(UpdataItemActivity.this, "position: " + position, Toast.LENGTH_SHORT).show();

实现item长按效果

adUadapter.setOnLongItemClickListener(new BaseViewHolder.OnLongItemClickListener() {
            @Override
            public boolean onLongItemClick(View view, int position) {
                String title = adUadapter.getItem(position).name;
                Toast.makeText(UpdataItemActivity.this, title + ",position: " + position, Toast.LENGTH_SHORT).show();
                return true;

实现item子控件点击效果

adUadapter.setOnChildItemClickListener(new BaseViewHolderHelper.OnChildItemClickListener() {
            @Override
            public void onChildItemClick(View view, int position) {
                String title = adUadapter.getItem(position).name;
                Toast.makeText(UpdataItemActivity.this, title + ",你点了图片,position: " + position, Toast.LENGTH_SHORT).show();

实现item点击或不可点击切换

rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                if (i == R.id.radioButton) {
                    adUadapter.getViewHolder().setItemable(true, true);
                } else if (i == R.id.radioButton2) {
                    adUadapter.getViewHolder().setItemable(false, false);

好了,在此附上github源码,喜欢的请start、fork。
https://github.com/DyncKathline/TestRecyclerView

转载请注明出处,谢谢!

//传true 可以滑动 false不可以滑动 RecyclerView.setNestedScrollingEnabled(boolean canScroll); 自己定义一个LayoutManager,... 我有一个带有relativelayout标题的listview,当我点击relativelayout中的任何空间时,它变成了白色,我不想那个白色,如果用户点击空间,什么都不会发生,但是如果他点击图像进入该相关布局,我可以在onclick中处理它。android如何使relativelayout不可点击并且其可点击这是相对布局android:layout_width="fill_parent"and... 官方是这样说明的: Attribute android:inputType should not be used with <TextView>: Change element type to <EditText> ? less... (Ctrl+F1) Using a <TextView> to input text is genera. 今天讲一下RecyclerView这个控件,使得不点击里面的item,只点击RecyclerView,写了demo随便看看哈~~~ 首先先分析为什么我们设置了Recyclerview.setOnClickListener确没办法响应。其实可以看一下源码。 里面源码有这个也有点击事件的。其实直观的分析其实就是点击事件在item里面所以不在RecyclerView,导致RecyclerVi 最近有一个需求,RecyclerView外层嵌套了一个LinearLayout,想实现点击整个LinearLayout都能响应一个事件,结果给LinearLayout和RecyclerView都加上点击事件(非itemClick)后,点击RecyclerView范围无效。可能是RecyclerViewitem截获了click事件,阻止了点击的透传,做了以下处理解决 recyclerView.s 效果图如下: Recyclerview 实现多选,单选,全选,反选,批量删除的步骤1.在Recyclerview布局中添加上底部的全选和反选按钮,删除按钮,和计算数量等控件 2.这里选中的控件没有用checkbox来做,用的是imageview,选中和不选中其实是两张图片 3.默认是不显示选中的控件的,点击编辑的时候显示,点击取消的时候隐藏 4.通过adapter和activity数据之 2.创建适配器继承RecyclerView.Adapter,泛型传入RecyclerView.ViewHolder类。 创建RecyclerView.ViewHolder类的子类,并初始化item的控件,重写RecyclerView.Adapter类。 Activity和Service都是Context的子类,通过Context提供的方法getApplicationContext()方法就能获到Context对象。 public class myadapter extends Recycle 之前浏览github的时候发现一个比较好用的MD风格的Dialog。这里记录一下使用。 Github地址:https://github.com/afollestad/material-dialogs导入compile 'com.afollestad.material-dialogs:core:0.9.1.0' compile 'com.afollestad.material-dialogs:com 完全阻止与单个项目中的任何内容进行交互的最简单方法可能是在其上方放置一个透明视图以拦截所有触摸事件.为此,您可以将现有的itemView布局包装在FrameLayout中,然后在其之上添加另一个视图:xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android...