본문 바로가기

Scroll

[Android] Viewpager swipe disable ViewPager에 Touch로 인한 Page 이동을 막고자 할 때 아래와 같이 Custom한 ViewPager를 사용 하세요. package com.namuon.ringq.widget.viewpager; import android.content.Context; import android.support.v4.view.MotionEventCompat; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.view.MotionEvent; public class SwipeViewPager extends ViewPager { private boolean enabled; public SwipeViewPag.. 더보기
[Andorid] Vertical RecyclerView 안에 Horizontal RecyclerView 스크롤 이건 괜찮은 블로그 내용이 있어서 공유 합니다. http://nerds.headout.com/fix-horizontal-scrolling-in-your-android-app/ 제가 이해한 블로그 내용은 RecyclerView는 스크롤 방향만 신경 쓰지, 움직이는 각도에 신경을 쓰지 않는다는 애기 입니다.@Override public boolean onInterceptTouchEvent(MotionEvent e) { ... switch (action) { case MotionEvent.ACTION_DOWN: ... case MotionEvent.ACTION_MOVE: { ... if (mScrollState != SCROLL_STATE_DRAGGING) { boolean startScroll = false.. 더보기
[Android] RecyclerView 에서 Scroll 정보 형태 intcomputeHorizontalScrollExtent()Compute the horizontal extent of the horizontal scrollbar's thumb within the horizontal range.intcomputeHorizontalScrollOffset()Compute the horizontal offset of the horizontal scrollbar's thumb within the horizontal range.intcomputeHorizontalScrollRange()Compute the horizontal range that the horizontal scrollbar represents.intcomputeVerticalScrollExtent()Compute.. 더보기
[Android] RecyclerView setAutoMeasureEnabled 함수 몇일전 Android에서 Android Support Library 23.2.0 버전으로 업데이트 하였습니다. 여기에서 저에 있어 가장 중요한 부분이 LinearLayoutManager에 setAutoMeasureEnabled 함수가 생긴 겁니다!!! 지금 까지 RecyclerView 안에 RecyclerView나 Scroll이 관련 있는 View를 사용하게 될 경우 NestedLinearLayout 과 같은 커스터마이징이 필요했었습니다. Android 에서 자동적으로 Layout을 늘려 주지 않았으니깐요.(참고 : http://gogorchg.tistory.com/entry/Android-Nested-RecyclerView-%EB%A7%8C%EB%93%A4%EA%B8%B0) 하지만, 이번 v23.2.0.. 더보기
[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 e.. 더보기
[Android] 강제로 AppbarLayout 열기 혹시 특정 시점에 AppbarLayout을 강제로 열고자할 경우 아래글을 읽어보세요. Using support libs v23 you can call appBarLayout.setExpanded(true/false) http://stackoverflow.com/a/32137264/3534559 setExpaned(true)를 주면 자동으로 AppbarLayout이 열립니다. 또 다른 오바라이딩 함수로 setExpaned(boolean expaned, boolean animate)로 되어 있습니다.animating을 할지 결정이 가능합니다. 디폴트는 animate가 true로 되어 있습니다.참고하세요. 더보기
[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 { /.. 더보기
[Android] ViewPager + SwipeRefreshLayout ViewPager와 SwipeRefreshLayout을 같이 사용할 경우, 서로 스크롤이 엉켜 ViewPager의 스크롤이 엉성하게 된다. 이럴 경우 iOS 같이 Horizontal일 경우에 SwipeRefreshLayout을 Disable을 시키고,Vertical 일 경우 Enable을 시키는 방식을 이용하면 된다. 1. Horizontal 인지 파악하는 Detector를 하나 만들어 둔다.public static class XScrollDetector extends GestureDetector.SimpleOnGestureListener { @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float di.. 더보기