본문 바로가기

안드로이드

TabLayout, Viewpager(슬라이딩), Fragment

TabLayout

 

 

1 로그인 Activity 화면 위에 2 회원가입 Activity화면을 올립니다.

 

 

큰 화면 디바이스에서는 

하나의 Activity안에 두개의 .xml파일

 

이 두개의 xml파일을 fragment.

 

하나의 화면에서 여러개의 fragment를 관리해서 통신 필요없이 자바파일 전역변수에서 데이터 주고 받을 수 있어요.

 

더보기

액티비티는 자바 파일이다. 

하나의 액티비티에는 하나밖에 못놔두니까
그 위에다가 쌓아가지고 보여준다.

테블릿은 화면이 크니까 분할해서 사용하고 싶은 욕구가 든다. 
2개의 XML을 하나의 액티비티에서 관리하는 방법이 있다.

이걸 Fragment라고 한다.
하나의 화면에 여러개의 Fragment를 두고 바꿔치기하는 방법을 이용할 수 있다.

장점 : 액티비티끼리 이동할때 데이터를 가지고 갈거면 시리얼 통신을 해야하는데 
하나의 액티비티에서 관리를하면 통신을 안하고 가능하다.


 

ex)네이버웹툰 

처음에 메모리에 다 띄어두면 느리지만 로딩이 없음 

뷰 페이저(슬라이드) + 탭레이아웃

뷰페이저 특징은 양쪽 탭레이아웃에 있는것을 미리 다운 받음 
그래서 양 옆을 이동할대는 굉장히 빠르다.


tabLayout은 디자인이긴한데 아이템들이 쏙쏙쏙 들어와야한다.

1, 2, 3은 자바코드로 넣어야한다.

 

 

구글 material에 TabsLayout사용할거라서 

implementation한다.

 

 

TabLayout 안에 Tabitem

 


 

퍼오면 @String이 있는데 안드로이드는 문자들을 저기서 관리하라고 한다.

하지만 반복적이나 긴것 아니면 그냥 적어도 된다.


 

Viewpager

 

슬라이드가능 양옆의 fragment를 데이터 미리 띄워 놓음.

 

 

 

 

 

 

 

 

 

 

TabItem들은 아래와 같이 자바코드로 가능

 

1,2,3을 자바코드로 짰다.

 

 

 

 

 

 

 

 

frag.xml 은메모리에 안뜸

 

 

그래서 자바파일에 

 

이 fragment들을 바꿔치기 해줄 어댑터도 만듬

 

오버라이딩 하려고 단축키 :  ctrl + i

 

constructor 단축키  : ctrl + o

 

Adepter가 Item틀 놔두고 안에 데이터만 

 

그래서 getItem랑 getCount를 꼭 알려달라고 하는 것 임.

컬렉션 하나 만들어서 안에 넣어주고 하면 Adepter가 관리해줌.

 

 

안드로이드는 데이터를 관리할 때 무조건 어댑터 필요합니다.

 

FragmentPagerAdapter => 모든 프레그먼트를 메모리에 미리 로딩 시켜둠. 소멸 안시킴, Tab이 많거나 한 Tab 많은 내용을 담고 있으면 비추천
FragmentStatePagerAdapter => default 3, 자기를 포함한 양옆만 메모리에 로딩, 적을때 쓰면 오히려 느려짐

 

 

'안드로이드' 카테고리의 다른 글

toolbar+tab  (0) 2020.07.16
Bottom Navigation  (0) 2020.07.16
안드로이드X gradle 모음  (0) 2020.07.15
안드로이드에서 lombok 쓰기  (0) 2020.07.15
액션바(toolbar) - Inset 반응형  (0) 2020.07.15