본문 바로가기

recyclerview

[Android] AppbarLayout 과 RecyclerView ChildView AppbarLayout과 RecycerView만 연동을 할 때는 스크롤이 문제 없이 잘 된다.하지만, 혹시 RecyclerView안에 RecyclerView를 넣을 경우RecyclerView 안에 있는 RecyclerView를 스크롤 하면 AppbarLayout이 움직이지 않는 현상이 발생 하기도 합니다.이럴 경우, Child RecyclerView의 Scroll를 막아주면 됩니다.방법은 두가지가 있습니다.1. setNestedScrollingEnabled 함수에 false 값을 넘깁니다.mRecycleView.setNestedScrollingEnabled(false);2. LayoutManager를 커스터마이징 합니다.public class CustomLinearLayoutManager extends .. 더보기
[Android] RecyclerView last position listener https://guides.codepath.com/android/Endless-Scrolling-with-AdapterViews-and-RecyclerView위 URL을 가보시면 ListView와 GridView 그리고 RecyclerView에서 Last Position을 알아보는 소스가 공유 되어 있습니다.아래 2016년 1월 버전보다 업데이트가 된 내용이라 공유 해드립니다.(참고로 이전 버전은 ScrollListener를 초기화 하는데 문제가 있었습니다.)아래 소스는 RecyclerView에 적용 할 수 있는 소스 입니다.public abstract class EndlessRecyclerViewScrollListener extends RecyclerView.OnScrollListener { // Th.. 더보기
[Android] View Background를 Rounded corner 형태로 반영 RecyclerView나 ListView와 같은 여러 View가 묶어서 표현해야 하는 View에서 Corner 부분만 라운드를 시키고자 할때,가장 쉽게 생각할 수 있는 부분이 Background에 Rounded된 이미지를 넣는 것으로 어느정도 해결이 된다.하지만, 이 외에도 한가지 더 좋은 방법이 있다.Rounded Corner 형태의 Drawable을 xml로 그리는 것이다.그게 아래 소스이다. <.. 더보기
[Android] Recycler View 사이에 divider 크기 조절 RecyclerView는 각 Row에 Decoration을 줄 수가 있습니다. 이때 사용하는 클래스가 RecyclerView.ItemDecoration 입니다.간단하게 리스트 사이에 간격을 별려주는 소스 입니다.public class CustomRecyclerDecoration extends RecyclerView.ItemDecoration { private final int divHeight; public CustomRecyclerDecoration(int divHeight) { this.divHeight = divHeight; } @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView... 더보기
[Android] RecyclerView Adpater Refresh RecyclerView를 사용한 후, Adapter를 계속 그냥 두는게 아니라 데이터가 변경이 되었을 때 항상 갱신을 해야 합니다.이전 ListView나 GridView를 사용했을 때 저는 모든 갱신을 notifyDataSetChanged 함수만 썼습니다.(제가 경력이 그리 많지 않아서..^^a)RecyclerView를 쓸때는 좀 더 다양하게 갱신을 줄 수 있습니다.## 추신 : 여기는 제가 직접 테스트를 하면서 생각된 기능으로 설명한 것입니다. API 의도와 틀릴 경우 언제든지 댓글 달아주세요^^ 수정 하겠습니다.notifyDataSetChanged : 데이터가 전체 바뀌었을 때 호출. 즉, 처음 부터 끝까지 전부 바뀌었을 경우notifyItemChanged : 특정 Position의 위치만 바뀌었을 .. 더보기
[Android] RecyclerView 에서 각 View 크기 조절 RecyclerView 에서 동적으로 Layout을 바꾸고 싶을 경우 아래와 같이 수정해보세요.View의 width 와 height를 같게 만드는 소스 이다.## onBindViewHolder 함수 내에서GridLayoutManager.LayoutParams layoutParams = (GridLayoutManager.LayoutParams)viewHolder.itemView.getLayoutParams();layoutParams.height = layoutParams.width;viewHolder.itemView.requestLayout();RecyclerView에서 설정한 LayoutManager에서 사용하는 LayoutParams를 가져 온후, 수정하면 된다.참고 하세요. 더보기
[Android] ObjectAnimator의 편의성 ListView 나 RecyclerView 에 애니메이션을 넣고 싶으시죠???간단한 방법 이 있습니다.바로!!ObjectAnimator를 이용하는 건데요.간단하게 리스트를 반짝 하고 바로 나오는게 아니라 알파값으로 Fade 효과를 적용하는 소스 입니다.ObjectAnimator.ofFloat(contentView, "alpha", 0.0f, 1f).start();딱! 한줄 넣으시면 됩니다.contentView는 Adapter에서 getView나 instatntiateItem 함수에서 전체 View로 할당해놓으시면 편합니다.원하시면 분할 시켜서 놓으셔도 되구요.엄청 간편하게 애니메이션을 적용할 수 있으시 한번 해보세요~ 더보기
[Android] Nested RecyclerView 만들기 RecyclerView 에서 onCreateViewHolder 나 onBindViewHolder와 같은 VIew를 설정할 함수가 불러지지 않을 경우가 있다.getItemCount 에서 0으로 설정되어 있지 않다면!혹시 ScrollView 안이나 ListView,GridView,RecyclerView 같은 Scroll기능이 포함된 View에 들어있지 않은가??이럴 경우, 수동적으로 View 높이를 지정해야 하는데 반나절을 열심히 찾아본 결과 좋은 소스가 있어 공유 한다.public class CustomLinearLayoutManager extends LinearLayoutManager { private static final String TAG = CustomLinearLayoutManager.class.. 더보기