2016-05-26 40 views
0

私のコードは大丈夫だと思いますが、何らかの理由でこのエラーがあります。これは私のコードです:エラー:シンボルメソッドfindFirstVisibleItemPosition()を見つけることができません

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() 
    { 
     @Override 
     public void onScrolled(RecyclerView recyclerView, int dx, int dy) 
     { 
      if(dy > 0) //check for scroll down 
      { 
       visibleItemCount = mLayoutManager.getChildCount(); 
       totalItemCount = mLayoutManager.getItemCount(); 
       pastVisiblesItems = mLayoutManager.findFirstVisibleItemPosition(); 

       if (loading) 
       { 
        if ((visibleItemCount + pastVisiblesItems) >= totalItemCount) 
        { 
         loading = false; 
         Log.v("...", "Last Item Wow !"); 
         //Do pagination.. i.e. fetch new data 
        } 
       } 
      } 
     } 
    }); 

私はすでにandroid.support.v7.widget.LinearLayoutManagerをインポートし、RecyclerView.LayoutManagerfindFirstVisibleItemPositiondocumentationを参照)のような方法がないので

private RecyclerView recyclerView; 
private RecyclerView.LayoutManager mLayoutManager; 

答えて

2

をdeclearedています。あなたはこの

private LinearLayoutManager mLayoutManager 
+0

か( 'LinearLayoutManager'ので驚きを拡張)' GridLayoutManager'または 'StaggeredGridLayoutManagerにこの

private RecyclerView.LayoutManager mLayoutManager 

からあなたの宣言を変更 findFirstVisibleItemPosition
を使用するようにLinearLayoutManagerを使用する必要があります'。基本的には、サポートlibによって提供されるすべての実装の標準的なメソッドですが、基本クラスにはありません。 –

+0

@MarcinKozińskiいいえ、 'LinearLayoutManager'だけが' findFirstVisibleItemPosition'メソッドを持ち、 'StaggeredGridLayoutManager'がint配列を返す' findFirstVisibleItemPositions'を持っているからです。だから、これが基本クラスにない理由です。 – Rehan

+0

あなたは正しいです、申し訳ありません。私は、ずらしたグリッドが少し違っていることに気付かなかった。しかし、グリッドは線形の単なるサブクラスなので、同様に持つ必要があります。 –

関連する問題