본문 바로가기
[android] design support library [android] design support library https://android-developers.googleblog.com/2015/05/android-design-support-library.html -android design support library 를 통해서 navigation drawer view, floating labels for editing text, floating action button, snackbar, tabs, motion & scroll framework 등을 2.1 이상 버전에서 사용 가능하다. -gradle 에 아래를 추가하자! compile 'com.android.support:design:22.2.0' 이 녀석은 Support v4 와 AppCompat .. 2017. 8. 4.
[android] PageTransformer 와 함께 하는 ViewPager 의 화려한 animation [android] PageTransformer 와 함께 하는 ViewPager 의 화려한 animation 참조 : https://medium.com/@BashaChris/the-android-viewpager-has-become-a-fairly-popular-component-among-android-apps-its-simple-6bca403b16d4 -ViewPager.PageTransformater interface 를 구현하면 매번 screen transition 이 발생할 때마다 tansformPage() 함수가 불린다. -position 값은 screen 의 center 로 부터 해당 page 가 어디에 위치하느냐를 나타낸다.page 가 screen 전체를 가득 채웠을 때에는 0 값을 가진다... 2016. 10. 4.
ViewPager 를 사용할 때 performance, memory 이슈 직면하지 않기. ViewPager 를 사용할 때 performance, memory 이슈 직면하지 않기. View 계층의 단순화 ViewPager 는 현재 보여지는 page 뿐만 아니라 좌, 우의 page 도 pre loading 시켜 놓는다.따라서 UI 복잡한 것들이 page 를 차지하고 있다면, scroll 을 하면서 계속 버벅이게 된다.즉, Pager 에 들어가는 view 구성은 최대한 단순하게. Thread 처리를 확실히. 한 화면에 모든것이 표현될 때는 Main Thread 에서 살~짝 heavy 한 일을 해도 그럭저럭 그냥 넘어가는 일이 발생한다.하지만, viewpager 의 경우는 좌우의 화면을 미리 그려놓기 때문에 생성되면서thread 에서 작업하는 것이 길어지면 성능이슈에 당면하게 된다.이에 대해 알지 .. 2014. 5. 15.
[android] viewpager fragment visibility check. android, viewpager fragment visibility check. 2가지 방법이 있다 : setMenuVisibility, setUserVisibleHint 하나는 setMenuVisibility 를 override 하여 전달되는 visible 값을 체크하는 것이다.ViewPager 의 해당 페이지의 fragment 가 focus 되면 해당 함수가 불린다. @Override public void setMenuVisibility(final boolean visible) { super.setMenuVisibility(visible); if (visible) { ... } } 두번째는 setUserVisibleHint 를 override 하여 isVisibleToUser 값을 체크하는 것이다... 2014. 3. 4.
[android] PagerTitleStrip example android, PagerTitleStrip example PagerTitleStrip? ViewPager 안에 들어가 ActionBar 의 Tab 과 비슷한 효과를 낼 수 있는 녀석을 이야기한다. xml java FragmentPagerAdapter{private static final String[] titles = { "Page 1", "Page 2", "Page 3", "Page 4" }; @Overridepublic CharSequence getPageTitle(int position) { return titles[position];}} actionbar, Android, android.support.v4.view.PagerTitleStrip, android.support.v4.view.View.. 2014. 2. 26.
[android] FragmentPagerAdapter? FragmentStatePagerAdapter 사용도 고려해보자. 안드로이드, FragmentPagerAdapter? FragmentStatePagerAdapter 사용도 고려해보자. FragmentPagerAdpater 나 FragmentStatePagerAdapter 를 사용할 때는 사실 가장 좋은 방법은 getItem() 부분만 잘 구현하고, instantiateItem() 은 건들지 않는 것이 좋다. 만약 건들고 싶다면, ViewPager 가 이 PagerAdapter 들을어떤 방식으로 호출하고, 어떤 루틴을 타는 지 정확히 이해하고 사용하는 것이 좋다. 사실 instantiateItem(), destroyItem(), 그리고 isViewFromObject() 는 이들보다 상위 class 인 PagerAdpater 자체에 정의되어 있는 함수들이다. 그리고 Fra.. 2013. 8. 7.
[android] ViewPager view refresh 에 대한 고찰. 안드로이드, ViewPager view refresh 에 대한 고찰 PagerAdapter 에 대한 notifyDataSetChanged()는 오직 ViewPager 에게 data set 이 변경되었다는 사실만을 알려준다. ViewPager 는 view 의 등록과 삭제를 getItemPosition( Object ) 과 getCount() 를 통해 한다.notifyDataSetChanged() 가 불리면 ViewPager 는 child view의 position 을 getItemPosition( Object ) 을 호출하여 알아본다. 만약 이 child view 가 POSITION_NONE 을 던지면 ViewPager 는 view 가 삭제되었음을 안다. 그리고 destroyItem( ViewGroup, .. 2013. 7. 29.
[android] Viewpager with fragment problem. 안드로이드, Viewpager with fragment problem. Viewpager 와 fragment 를 동시에 사용할 경우 view redraw 가 잘 안 되는 현상이 발생하기도 한다.필자가 겪었던 문제는 Acitivity 를 사용하다가 Home 키로 나갔을 경우 한참후에 다시 들어오면 ViewPager 안에 있는 Fragment 들만 다시 안 그려지는 현상을 발견했다. ( ViewPager 바깥에 있는 Fragment 들은 잘 그려졌다. ) 구글링 결과 여러가지 솔루션을 제공하는데.. 1. View destroy 안 되게 하기 #1 FragmentPagerAdapter.setOffscreenPageLimit( int retainNumber ) 위의 함수를 통해 Fragment 를 destroy.. 2013. 7. 25.
[android] FragmentPagerAdapter 사용방법 안드로이드, FragmentPagerAdapter 사용 방법 ViewPager 를 사용할 때, 이 녀석도 List 종류와 마찬가지로 adapter 를 사용할 수 있다. FragmentPageAdapter 보통 ViewPager 는 Fragment 와 혼합해서 사용하기 때문에, 대중적으로 사용되는 것은 FragmentPagerAdapter 이다.다른 Adapter 와 마찬가지로 FragmentPagerAdapter 를 상속하는 class 를 하나 만들어주고 그곳에서 public ViewPagerAdapter( FragmentManager fm )public Fragment getItem( int position )public int getCount() 를 override 해주면 된다. PagerAdapte.. 2013. 7. 23.
반응형