original source : https://youtu.be/7ep4effngGc

image

material design이 도입되면서 제공되는 새로운 widgets의 예를 보여주고 있다. 

 AppBarLayout 부터 TextInputLayout까지 모두 새로운 widgets에 해당한다.

image

=========================================================

.

.

drawer layout 과 navigation view , navigation drawer 비교

https://stackoverflow.com/questions/44176576/navigation-drawer-vs-navigation-view-which-is-best-and-what-is-the-diffrence

image

NavigationView를 DrawerLayout과 함께 사용한 방법을 아래서 보여주고 있다.

image
image
image
image

=========================================================

.

.

image
image
image

=========================================================

.

.

image
image
image

=========================================================

.

.

image

=========================================================

.

.

image

=========================================================

.

.

image

=========================================================

.

.

image
image

=========================================================

.

.

AppBarLayout과 CollapsingToolbarLayout
참고) 실제 예시
https://youtu.be/wCuM_di5M9Y?t=50

image
image

=========================================================

.

.

image
image

=========================================================

.

.

image
image

=========================================================

.

.

android studio 에서 blank activity template을 선택하는 경우 기본적으로 material design widgets이 어느 정도 설정되어서 시작된다.

image

original source : https://youtu.be/9sQ7ArZHv34

image

=========================================================

.

.

image
image
image
image

=========================================================

.

.

image
image

=========================================================

.

.

image
image

=========================================================

.

.

image
image

=========================================================

.

.

FragmentPagerAdapter는 페이지수가 처음 만들어질때 고정이 되는 경우이다. 

image
image
image
image

=========================================================

.

.

image
image

original source : https://youtu.be/iIjw2L2fC2M

image

=========================================================

.

.

TabHost가 가지는 methods

image

=========================================================

.

.

TabSpec가 가지는 methods

image

=========================================================

.

.

TabWidget안에 TabSpec들이 들어가게 된다.

여기서는 <FrameLayout>이 tabcontent가 되고 그안에 각 tab이 선택될때 보여줄 content 들이 들어가게된다.

image
image
image

newTabSpec()에는 tag 이름이 arg로 전달된다. setContent()에는 xml화일에서 tab content부분에 해당하는 view의 id가 전달된다.

https://developer.android.com/reference/android/widget/TabHost#newTabSpec(java.lang.String)

image

=========================================================

.

.

TabHost의 TabSpec선택시 fragment 전환을 통해 다른 tab content를 보여주는 방법을 보여주고 있다. 이런 경우 FragmentTabHost를 사용한다.

image
image
image
image

=========================================================

.

.

state list를 통해 tab이 선택되어있는 동안에 다른 drawable이 background가 되게 하는 방법을 보여주고 있다.

image

=========================================================

.

.

Fragment안에서 TabHost를 사용하는 방법설명

image

Image is not showing up for tab bar item

Image is not showing up for tab bar item

기본 구성요소 

https://developer.apple.com/documentation/uikit/view_controllers

customizing

UITabBarControllerDelegate

https://developer.apple.com/documentation/uikit/uitabbarcontrollerdelegate

UITabBarDelegate

https://developer.apple.com/documentation/uikit/uitabbardelegate

기본 구성요소 

https://developer.apple.com/documentation/uikit/view_controllers

customizing

UITabBarControllerDelegate

https://developer.apple.com/documentation/uikit/uitabbarcontrollerdelegate

UITabBarDelegate

https://developer.apple.com/documentation/uikit/uitabbardelegate