BRAVH学习笔记---1

这篇博客是我学习BRAVH框架的记录,学习的内容大致也是遵循BRAVH官方指南:官方指南

1.添加依赖

在app模块下的build里添加:

implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'
implementation 'com.android.support:recyclerview-v7:26+'

(遇到一个问题:recycleview的版本号我不知道怎么确定,查了一下也没查到,就用了一个‘+”号,有小伙伴知道在哪可以查到的请评论告诉我一下,非常感谢!)

在project下的build里添加:

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

然后就可以在项目中使用了!

2.实现item的点击事件

1.首先需要写一个Adapter继承BaseQuickAdapter:

import android.support.annotation.Nullable;
import android.view.View;
import android.widget.TextView;

import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;

import java.util.List;

/**
 * Created by wjc on 2019/5/5.
 */

public class RecyclerViewAdapter extends BaseQuickAdapter<DataModel, RecyclerViewAdapter.ViewHolder> {

    public RecyclerViewAdapter(int layoutResId, @Nullable List<DataModel> data) {
        super(layoutResId, data);
    }

    static class ViewHolder extends BaseViewHolder{
        public TextView tv_title;
        public TextView tv_text;
        public ViewHolder(View view) {
            super(view);
            tv_title=view.findViewById(R.id.recycler_view_title);
            tv_text=view.findViewById(R.id.recycler_view_text);
        }
    }
    @Override
    protected void convert(ViewHolder helper, DataModel item) {
        helper.setText(R.id.recycler_view_title,item.title)
                .setText(R.id.recycler_view_text,item.text)
                .addOnClickListener(R.id.recycler_view_title)
                .addOnClickListener(R.id.recycler_view_text)
                .addOnLongClickListener(R.id.recycler_view_title)
                .addOnLongClickListener(R.id.recycler_view_text);
    }
}

2.然后在MainActivity中为Adapter添加点击响应事件即可:

private void setAdapterClickListener() {
        adapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
                Toast.makeText(MainActivity.this, "点击了view" + position, Toast.LENGTH_SHORT).show();
            }
        });
        adapter.setOnItemLongClickListener(new BaseQuickAdapter.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(BaseQuickAdapter adapter, View view, int position) {
                Toast.makeText(MainActivity.this, "长按了view" + position, Toast.LENGTH_SHORT).show();
                return true;
            }
        });
        adapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
            @Override
            public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
                RecyclerViewAdapter.ViewHolder viewHolder = new RecyclerViewAdapter.ViewHolder(view);
                Toast.makeText(MainActivity.this, "点击了" + ((TextView) view).getText(), Toast.LENGTH_SHORT).show();
            }
        });
        adapter.setOnItemChildLongClickListener(new BaseQuickAdapter.OnItemChildLongClickListener() {
            @Override
            public boolean onItemChildLongClick(BaseQuickAdapter adapter, View view, int position) {
                Toast.makeText(MainActivity.this, "长按了" + ((TextView) view).getText(), Toast.LENGTH_SHORT).show();
                return true;
            }
        });
    }

这样就可以实现关于item的点击、长按以及item内部控件的点击、长按的事件处理了。不过这里有个不太懂的地方就是:处理长按事件时返回的是一个boolean值,这个值有什么作用呢?

3.设置加载动画

这里我通过一个Spinner来放置加载动画的各种模式,通过点击选择可以改变加载动画的模式:

s_animainStyle.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                switch (position) {
                    case 0:
                        setAdapterAnimation(BaseQuickAdapter.ALPHAIN);
                        break;
                    case 1:
                        setAdapterAnimation(BaseQuickAdapter.SCALEIN);
                        break;
                    case 2:
                        setAdapterAnimation(BaseQuickAdapter.SLIDEIN_BOTTOM);
                        break;
                    case 3:
                        setAdapterAnimation(BaseQuickAdapter.SLIDEIN_LEFT);
                        break;
                    case 4:
                        setAdapterAnimation(BaseQuickAdapter.SLIDEIN_RIGHT);
                        break;
                    default:
                        setAdapterAnimation(BaseQuickAdapter.ALPHAIN);
                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
            }
        });
private void setAdapterAnimation(int animationStyle) {
        if (animationStyle == 0)
            adapter.openLoadAnimation();
        else
            adapter.openLoadAnimation(animationStyle);
    }

这样就可以改变动画加载摸式了
效果如下:
在这里插入图片描述
后续会持续更新

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值