2015-01-21 2 views
2

많은 항목보기가 포함 된 RecyclerView가 있습니다 ([a, b, c, d, e, ...]). bc 사이에 새 ItemView X을 삽입하려면 기본 컬렉션을 업데이트하고 notifyItemInserted(2)으로 전화하십시오. 나는 지금 [a, b, X, c, d, e, ...]을 가지고있다.Android RecyclerView : 항목에서 아래쪽이 아닌 위로 밀어 넣기

내 문제는 X이 나타날 때, 그것은 (화면 밖으로 e을 밀어) 자체가 다운 후 모든보기 을 밀어 것입니다, 나는 (화면에서 a을 밀어)가 자체 최대 전에 모든보기 를 밀어해야합니다.

이렇게 할 방법이 있습니까?

+0

이상한. GridLayoutManager를 사용하고 있으며 기본 동작이 원하는 것처럼 보이고이 작업을 되돌릴 방법을 찾고 있습니다. – m02ph3u5

답변

0

LinearLayoutManager가 목록의 시작을 앵커 위치로 간주하기 때문에 이러한 현상이 발생합니다. 목록의 끝을 앵커 위치로 지정하려면 stackFromEnd = true;을 설정할 수 있습니다. 이 경우 목록이 처음으로로드되면 다음과 같이 표시됩니다.

V W X Y Z // assuming alphabet is your list of items

이 대화 앱과 같은 것들에 대한 일반적인 경우이다.

stackFromEndtrue으로 설정되어있는 동안 처음부터 시작하려면 어댑터가 초기화 될 때 scrollToPosition(0)으로 전화 할 수 있습니다.

+0

안녕하세요 @yigit, 키보드를 표시 할 때 올바른 위치를 유지하려면'stackFromEnd (true) '를 사용합니다. 그러나 recyclerview (1 또는 2)에 항목이 거의없는 경우 해당 항목은 recyclerview의 맨 아래에 약간의 공백이 표시됩니다. 리스트가 현재 뷰포트 크기를 초과하는 경우에만 stackfromend를 허용하는 방법이 있습니까? –

+0

죄송합니다. 스택 양식 끝에 설정이 없으므로 추가 할 계획이 아닙니다. – yigit