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 하는 걸 말한다.