【转载】最好用的通用adapter——BaseQuickAdpater详解(2)

本文详细介绍了BaseQuickAdapter在Android开发中的使用,包括事件绑定、动画效果、添加头尾视图、分组布局、多布局、拖拽滑动删除功能,以及树形列表的实现。还提及了面试资料的分享。
摘要由CSDN通过智能技术生成

});

注意:设置子控件的事件,如果不在adapter中绑定,点击事件无法生效,因为无法找到你需要设置的控件。

如果需要获取item中其他控件,上述代码有表现, adapter.getViewByPosition()方法进行初始化

TextView textView=(TextView) adapter.getViewByPosition(recycleview, position, R.id.student_name);

ps:如果有header的话需要处理一下position加上 headerlayoutcount。即如果header有的话,postion的点击postion实际上为postion+headerlayoutcount.

动画


开启动画(默认为渐显效果)

adapter.openLoadAnimation();

默认提供5种方法(渐显、缩放、从下到上,从左到右、从右到左)

public static final int ALPHAIN = 0x00000001;

public static final int SCALEIN = 0x00000002;

public static final int SLIDEIN_BOTTOM = 0x00000003;

public static final int SLIDEIN_LEFT = 0x00000004;

public static final int SLIDEIN_RIGHT = 0x00000005;

切换动画

quickAdapter.openLoadAnimation(BaseQuickAdapter.ALPHAIN);

自定义动画

quickAdapter.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)

};

}

});

动画默认只执行一次,如果想重复执行可设置

mQuickAdapter.isFirstOnly(false);

因为有些人不希望第一页看到动画,或者说希望前几个条目加载不需要有动画,所以可以

设置不显示动画数量

adapter.setNotDoAnimationCount(count);

添加头部、尾部


mQuickAdapter.addHeaderView(getView());

mQuickAdapter.addFooterView(getView());

删除指定view

mQuickAdapter.removeHeaderView(getView);

mQuickAdapter.removeFooterView(getView);

删除所有

mQuickAdapter.removeAllHeaderView();

mQuickAdapter.removeAllFooterView();

默认出现了头部就不会显示Empty,和尾部,配置以下方法也支持同时显示:

setHeaderAndEmpty

setHeaderFooterEmpty

默认头部尾部都是占满一行,如果需要不占满可以配置:

setHeaderViewAsFlow

setFooterViewAsFlow

加载更多


此adapter封装加载更多其实并不好用,因此我更建议采用传统的根据recyclerview判断item位置进行判断,自动加载更多

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {

@Override

public void onScrollStateChanged(RecyclerView recyclerView, int newState) {

super.onScrollStateChanged(recyclerView, newState);

lastVisibleItem = linearLayoutManager.findLastVisibleItemPosition();

firstVisibleItem=linearLayoutManager.findFirstVisibleItemPosition();

if (newState == RecyclerView.SCROLL_STATE_IDLE&&linearLayoutManager.getItemCount() >0&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值