崔峰鸣 2016-07-10 06:50 采纳率: 33.3%
浏览 1158
已采纳

Android RecyclerView OnScrollListener

图片说明
public class MyRecyclerView extends RecyclerView implements RecyclerView.OnScrollListener
{
/**

  • 记录当前第一个View */ private View mCurrentView;

private OnItemScrollChangeListener mItemScrollChangeListener;

public void setOnItemScrollChangeListener(OnItemScrollChangeListener mItemScrollChangeListener)
{
this.mItemScrollChangeListener = mItemScrollChangeListener;
}

public interface OnItemScrollChangeListener
{
void onChange(View view, int position);
}

public MyRecyclerView(Context context, AttributeSet attrs)
{
super(context, attrs);
// TODO Auto-generated constructor stub
this.setOnScrollListener(this);
}

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b)
{
super.onLayout(changed, l, t, r, b);

mCurrentView = getChildAt(0);

if (mItemScrollChangeListener != null)
{
    mItemScrollChangeListener.onChange(mCurrentView, getChildPosition(mCurrentView));
}

}

@Override
public void onScrollStateChanged(int arg0)
{
}

/**
*

  • 滚动时,判断当前第一个View是否发生变化,发生才回调
    */
    @Override
    public void onScrolled(int arg0, int arg1)
    {
    View newView = getChildAt(0);

    if (mItemScrollChangeListener != null)
    {
    if (newView != null && newView != mCurrentView)
    {
    mCurrentView = newView ;
    mItemScrollChangeListener.onChange(mCurrentView, getChildPosition(mCurrentView));
    }
    }

}

}
各位版主大神,这种是什么错误,该怎么解决呢?

  • 写回答

2条回答 默认 最新

  • fuermosi683 2016-07-10 10:52
    关注

    你仔细看一下,这个不是接口,是类。需要extends
    而不是implememt 。希望采纳。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?