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

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

.

.

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

.

.

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

.

.

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

.

.

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

.

.

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

.

.

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

.

.

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

.

.

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

.

.

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

.

.

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

.

.

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

.

.

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

.

.

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

.

.

original source : https://youtu.be/013HuIlokzE

image
image

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

.

.

image
image

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

.

.

image
image
image

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

.

.

image

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

.

.

image

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

.

.

image
image
image
image

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

.

.

image
image

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

.

.

image
image
image
image

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

.

.

image
image

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

.

.

image
image

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

.

.

image

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

.

.

image
image

WebViewClient를 arg로 전달함으로써 web page가 열리기 전에 추가 작업을 수행할수 있다.

image
image
image

webview는 history stack을 관리한다. 

image
image

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

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

image

action bar는 상단에 나타나며 기본적으로 toolbar의 한 형태이다

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

.

.

image

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

.

.

image

HomeAsUp 버튼을 클릭한 경우 android.R.id.home에 해당한다.

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

.

.

image

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

.

.

image

theme에 정의되어 있는 action bar style이나 속성값들을 수정 함으로써 그 모양을 변경할수 있다. style , 속성값 종류로는 actionBarStyle, windowActionBarOverlay, actionBarSize, actionButtonStyle등이 있다.

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

.

.

image

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

.

.

image

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

.

.

image

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

.

.

image

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

.

.

image

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

.

.

image

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

.

.

image

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

.

.

image

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

.

.

image

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

.

.

image

fragment back stack을 이용한 back navigation

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

.

.

image

intent flag를 이용한 up navigation

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

.

.

image

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

.

.

image

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

.

.

image
image

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

.

.

image
image

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

.

.

image

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

.

.

image

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

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

.

.

?android:attr/buttonStyle 은 theme에 정의되어있는 buttonStyle을 TextView에 style로 사용하라는 의미이다. 

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

.

.

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

.

.

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

.

.

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

.

.

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

.

.

Title.Shadow의 경우 Title style이 parent style이 되고 이를 상속받은 Shadow style이 있는 것이다.

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

.

.

theme이라는 tag가 따로 있는 것이 아님에 유의한다. style tag를 이용한다.

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

.

.

theme안에 style과 attribute를 같이 혼재 사용한것에 유의한다.

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

.

.

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

.

.

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

.

.

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

.

.

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

.

.

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

.

.