Android源码bug集合

来源:互联网 发布:淘宝买枪暗语 编辑:程序博客网 时间:2024/05/14 04:55

收集项目中遇到的Android源码bug,

RecyclerView的getItemDecorationAt(int index)方法

源码如下:RecyclerView.java的第1460行。

    /**     * Returns an {@link ItemDecoration} previously added to this RecyclerView.     *     * @param index The index position of the desired ItemDecoration.     * @return the ItemDecoration at index position, or null if invalid index.     */    public ItemDecoration getItemDecorationAt(int index) {        if (index < 0 || index > mItemDecorations.size()) {            return null;        }        return mItemDecorations.get(index);    }

Analysis:当index=0,且mItemDecorations.size()=0时,这里就会通过前面if语句的判断,在return mItemDecorations.get(index)的语句里就抛出一个异常,下标越界。

Solution:继承该类,然后重写该方法,示例。

@Overridepublic ItemDecoration getItemDecorationAt(int index) {        if (index < 0 || index > mItemDecorations.size()-1) {            return null;        }        return mItemDecorations.get(index);    }
原创粉丝点击