2

Ich habe RecyclerView darüber, dass ich ein AppBarLayout, dessen Höhe ist größer als 255 px. Wenn Benutzer RecyclerView scrollt, hat AppBarLayout ein Schleuderproblem. Um das zu vermeiden, entschied ich mich, AppBarLayout manuell zu erweitern. Mein RecyclerView aus GridLayoutManager mit Spannweite von 3. Ich unter Verwendung im Code RecyclerView zu hören obenWie zu erkennen, wenn RecyclerView zu den meisten oberen Position gescrollt wird

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { 
    @Override 
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) { 
     super.onScrollStateChanged(recyclerView, newState); 
     if (newState == RecyclerView.SCROLL_STATE_IDLE) { 
      int firstVisiblePosition = ((LinearLayoutManager)recyclerView.getLayoutManager()).findFirstCompletelyVisibleItemPosition(); 
      if (firstVisiblePosition == 0) { 
       appBarLayout.setExpanded(true, true); 
      } 
     } 
    } 
}); 

Antwort

1
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { 
     @Override 
     public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
      super.onScrolled(recyclerView, dx, dy); 

      int firstVisibleItem = gridLayoutManager.findFirstCompletelyVisibleItemPosition(); 

      if(firstVisibleItem == 0){ 
       // your code 
      } 
     } 
    }); 
+0

erreichen, aber es wird mein Problem nicht beheben –

+0

i oben auf Scroll –

+0

keinen Gebrauch up erreicht bekommen will, ist es wird gleich sein –

Verwandte Themen