RecyclerView进阶(一)item分割线

个人总结,做个记录。

没有分割线
如图,一般来说,item之间都应该有分界线。但是RecyclerView并没有提供divider这样的属性。在API中,提供了RecyclerView.ItemDecoration这样一个内部类。API文档是这样描述的:

An ItemDecoration allows the application to add a special drawing and layout offset to specific item views from the adapter’s data set. This can be useful for drawing dividers between items, highlights, visual grouping boundaries and more.

All ItemDecorations are drawn in the order they were added, before the item views (in onDraw() and after the items (in onDrawOver(Canvas, RecyclerView, RecyclerView.State).
也就是说这个绘制是按照他们的添加顺序进行的,并且是发生在item view的绘制之前。

这是一个抽象类,是需要我们自己去具体实现的。

1. 从DividerItemDecoration开始

从API 25开始,新增了一个具体的实现类DividerItemDecoration

DividerItemDecoration is a RecyclerView.ItemDecoration that can be used as a divider between items of a LinearLayoutManager. It supports both HORIZONTAL and VERTICAL orientations.

从介绍来看,这是一个用于LinearLayout的分割线

mDividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(),
             mLayoutManager.getOrientation());
     recyclerView.addItemDecoration(mDividerItemDecoration);

DividerItemDecoration效果
其实ItemDecoration还提供了另外一个子类ItemTouchHelper,这是在API 22.2.0中增加的。这个类主要是用来处理RecyclerView的滑动拖拉事件的,暂且不论。

先来看看ItemDecoration这个抽象类:

public static abstract class ItemDecoration {
   
          public void onDraw(Canvas c, RecyclerView parent, State state) {
            onDraw(c, parent);
        }
        public void onDrawOver(Canvas c, RecyclerView parent, State state) {
            onDrawOver(c, parent);
        }
        public void getItemOffsets(Rect outRect, View view, RecyclerView parent, State state) {
            getI
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: skb recycle是指射频技术中的信道回收技术,主要用于无线通信系统中的信号处理和网络优化。在无线通信系统中,信道回收技术能够提高系统的频谱效率和用户的数据传输速率。 skb recycle的原理是通过对已经传输的信号进行回收和重新利用,以提高频谱利用率。具体而言,它能够捕获已经传输过的信号,对这些信号进行补偿和修正,然后再次发送给其他需要使用该信号的用户。因此,信道回收技术能够显著减少频谱资源的浪费,并且在减少信号干扰的同时提高了系统的容量。 skb recycle技术在无线通信系统中的应用广泛。例如,在蜂窝网络中,当用户在移动中切换到新的基站时,之前所使用的频率资源可以被回收利用。此外,信道回收技术还可以被应用于多天线系统中,通过捕获和再利用多径信号,提高系统的容量和覆盖范围。 总之,skb recycle是一种利用信道回收技术提高无线通信系统频谱效率和用户数据传输速率的方法。它可以帮助无线通信系统更高效地利用频谱资源,提升用户体验和网络性能。 ### 回答2: skb recycle是指对skb(Socket Buffer)进行回收利用的过程。 在操作系统中,skb是一种用于在内核与网络协议栈之传输数据的数据结构。它包含有关数据包的各种信息,例如发送方和接收方的IP地址、协议类型、数据长度等。 skb recycle是一种优化技术,旨在提高网络数据传输的效率和性能。在传输数据时,操作系统会创建多个skb对象,用于存储不同的数据包。一旦数据包传输完成后,这些被使用过的skb对象就可以进行回收利用,以避免频繁地创建和销毁对象,从而减少系统开销。 skb recycle的核心思想是在创建skb对象时,使用一个空闲列表来记录可用的回收对象。当需要新的skb对象时,首先从空闲列表中获取,如果列表为空,则会创建新的对象。而当数据包完成传输后,就将该skb对象重新加入到空闲列表中,以供下一次使用。 通过使用skb recycle技术,可以显著提高网络性能和吞吐量。因为减少了频繁地创建和销毁对象,系统的开销大大降低。同时,有效地回收利用已用过的skb对象,也减少了内存资源的浪费。 总之,skb recycle是一种对skb对象进行回收利用的技术,可以提高网络数据传输的效率和性能,减少系统开销和内存浪费。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值