Android

[11일차] Meterial Design 탭,텍스트 인풋,FloationActionButton,appBarLayout

openDatabase 2016. 7. 27. 10:56

탭 레이아웃과 뷰페이져를 연동.



FragmentPagerAdapter를 상속받아 자바클래스 생성


이거를 탭레이아웃과 연동하려면 getPageTitle을 구현해야한다. 


이건 탭에 보여질 이름을 넘기는 거다. 



탭 모양을 바꾸고 싶으면 



tabs.removeAlltabs() 해서 지우고 



tabs.add해서 tabs.newTab().setText(""+i)해서 바꾸어 넣는다. 


setupWithViewPager 하는 시점에 탭을 추가하기 때문에 tabs.removeAllTabs를 나중에 해줘야한다.


뷰페이져 에서 타이틀을 나타내려면 프래그먼트에서 


setUserVisibleHint()를 해줘야 한다. 


if(visibleToUser){

getActivity.setTitle(message);

}


textInput Layout


- 실습 

XML 에 TextInputLayout 추가 

TextInput 레이아웃을 여러개 추가한다. 

EditText에 힌트를 넣는다. 

필살기 얻은느낌이다.

Floating Action Button


xml 에 선언해서 쓰면된다. 

버튼클릭 리스너로 거기에 Snackbar.make(view,"Snackbar",Scackbar.LENGTH_SHORT).setAction("Ok",new View.onClickListener(){

Toast.makeText(FabActivit.this,.........................)
})

이거로 하면 버튼을 가리게 되는데 가리지 않도록 같이 올라가는게 Cordinate이다. 

1. Behavior를 다른애 한테 설정할 수있다. 이 버튼의 Behavior를 만들어서 Scack바에 전달을 해준다. 그래서 스낵바가 올라올때 그 height만큼 올라온다. 



이거는 xml에서 CordinateLayout으로 바꾼다. 
이건 gravity를 가진다 right|end|bottom

2. anchor속성이 있는데 내가 나오기 위한 기준이 되는 뷰 . 나중에 만들어 보겠다. 


layout anchor view는 그 위치에 내가 지정하겠다는 뜻이다. 



3. CordinatorLayout 은 기본적으로 elevation 값을 가지고 있기 때문에 다른 뷰가 오더라도 맨 위에 뜬다. 




appBarLayout


스크롤뷰는 nested스크롤 뷰를 써야 하고, 


리스트는 리사이클 뷰를 사용해야 한다. 


두가지를 써야 만 한다. 


반드시 behavior를 사용을 해야한다. 


toolbarsize도 정확하게 해야한다. height 할때 attr 해서 actionbarsize 하는 걸 말한다.