【问题标题】:Android: Cannot resolve method 'findFirstVisibleItemPosition()'?Android:无法解析方法“findFirstVisibleItemPosition()”?
【发布时间】:2015-03-29 08:14:26
【问题描述】:

我正在尝试编写代码以在回收站视图上无限滚动。这是给我一个编译器错误的sn-p:

@Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

                visibleItemCount = mLayoutManager.getChildCount();
                totalItemCount = mLayoutManager.getItemCount();
                pastVisiblesItems = mLayoutManager.findFirstVisibleItemPosition();

                if ( (visibleItemCount+pastVisiblesItems) >= totalItemCount) {
                    Log.v("...", "Last Item Wow !");
                }

而我之前写的声明是:

mLayoutManager = new LinearLayoutManager(this);

而mLayoutManager是类RecyclerView.LayoutManager的对象

【问题讨论】:

  • 代码看起来不错,可能会显示您的其他相关代码,或者 logcat 错误
  • 这是我得到的确切错误:Error:(62, 51) error: cannot find symbol method findFirstVisibleItemPosition()
  • 检查您的导入,确保您使用的是android.support.v7.widget.LinearLayoutManager

标签: android android-recyclerview


【解决方案1】:

mLayoutManager is an object of class RecyclerView.LayoutManager 错了,你应该用android.support.v7.widget.LinearLayoutManager 代替mLayoutManager,所以:

mLayoutManager = new LinearLayoutManager(this); 
//above 'LinearLayoutManager' is from
//'android.support.v7.widget.LinearLayoutManager'

mRecyclerView.setLayoutManager(mLayoutManager);

那么在onScrolled(...); 中调用mLayoutManager.findFirstVisibleItemPosition(); 应该没问题。

希望对您有所帮助!

【讨论】:

  • 我已经导入了它,但我的对象的类可能需要更改。我会试试你的变化,看看它是如何工作的。谢谢
  • 我已将这两行添加到我的导入代码中,但仍显示一条红线。 import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView;
  • 好吧 mLayoutManager 应该是 LinearLayoutManager 的一个对象......即使我已经导入了它,编译器将它转换为 RecyclerView.LayoutManager。非常感谢您的帮助。
  • StaggeredGridLayoutManager 怎么样??
  • RecyclerView.LayoutManager之一,查看StaggeredGridLayoutManager
猜你喜欢
  • 2014-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-11
  • 2014-01-15
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多