实现RecyclerView.OnScrollChangeListener {api 23到api 15的例子?

时间:2017-02-18 08:43:37

标签: android android-studio

我有这段代码:

 public class UserAreaActivity extends AppCompatActivity implements
 RecyclerView.OnScrollChangeListener {

和此:

    //Adding an scroll change listener to recyclerview
    recyclerView.setOnScrollChangeListener(this);

OnScrollChangeListener和setOnScrollChangeListener在23以下的API中不起作用。

例如,要在api 15上工作,我会在其他帖子中阅读以使用addOnScrollListener代替。问题是,当我将OnScrollChangeListener更改为addOnScrollListener时,它为我提供了Cannot resolve symbol

我的问题是,如何更改上面的代码才能在23以下的API中使用?

2 个答案:

答案 0 :(得分:2)

这是低于23

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
                @Override
                public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                    super.onScrollStateChanged(recyclerView, newState);


                }
@Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
        super.onScrolled(recyclerView, dx, dy);
        // your code
    }
        });

你可以使用它。你得到这个错误,因为RecyclerView.OnScrollListener是一个类而不是一个接口。所以你不能直接实现它。

答案 1 :(得分:1)

我正在使用addOnScrollListener,它在支持库24.2.0上运行良好。

我覆盖了onScrollStateChangedonScrolled两种方法:

myRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(RecyclerView recyclerView,
                                     int newState) {
        super.onScrollStateChanged(recyclerView, newState);
        // your code
    }

    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
        super.onScrolled(recyclerView, dx, dy);
        // your code
    }
});