0

저는 RecyclerView를 가지고 있습니다. 먼저 RecyclerView를 아래로 스크롤했습니다. 이제 위로 스크롤하면 위로 가장 많이 도달합니다. 나는 그것을 발견하고 싶다. 어떤 방법이 있나? 나는 AppBar의 높이가 장치 너비보다 큽니다. 그래서 그것은 두루마리에 새끼를 낳습니다. 나는 최고 도달 청취자가 핑핑을 피하기 위해 수동으로 AppBar를 확장한다고 생각했습니다.RecyclerView 상단 감지?

if (layoutManager.firstCompletelyVisibleItemPosition() == 0) { 
    //this is the top of the RecyclerView 
    } 

이 코드는 이미 사용했지만이 코드를 넣은 후 RecyclerView를 위로 스크롤 할 수 없다는 것이 내 문제입니다. RecyclerView는 3 열로 GridLayoutManager를 사용하기 때문에.

+0

가능한 복제 [?를 RecyclerView가/LinearLayoutManager가 상단이나 하단에 스크롤 여부를 알 방법] (http://stackoverflow.com/questions/27841740/how-to-know-whether-a-recyclerview-linearlayoutmanager-is-scrolled-to-top-or-b) –

+0

내 질문을 편집했습니다 –

답변

4

당신은 당신의 RecyslerView 첫 번째 눈에 보이는 항목을 찾을하는 데 사용할 수 있습니다에 LinearLayoutManager 세트가있는 경우 :

LinearLayoutManager layoutManager=new LinearLayoutManager(this); 
recyclerview.setLayoutManager(layoutManager); 

if (layoutManager.firstCompletelyVisibleItemPosition() == 0) { 
    //this is the top of the RecyclerView 
} 
+0

이 코드는 이미 사용하지만 내 문제는이 코드를 넣은 후 RecyclerView 위로 스크롤 할 수 없다는 것입니다. RecyclerView는 3 열로 GridLayoutManager를 사용하기 때문에. –

+4

올바른 메소드 이름은'findFirstCompletelyVisibleItemPosition'입니다. –

+0

'findFirstCompletelyVisibleItemPosition'은 항목이 화면보다 큰 경우 작동하지 않습니다 (작은 장치에서 쉽게 발생할 수 있음) – Katharina