본문 바로가기

ANDROID

[안드로이드] TabbedActivity에서 각 Fragment의 레이아웃 구성요소 설정 및 제어

저번에 TabbedActivity를 사용해 간단한 Swipe View 구현을 확인하였는데,


단순히 종이를 넘기듯이 기본 레이아웃만을 넘기는 데에 그쳐서


정말로 필요하던, 그러니까 레이아웃을 한 액티비티를 실행할 때 처럼 제어하고


애니메이션 및 리스너들을 붙일 수 있는지가 궁금했다.



서치를 통해 간단하게, 혹은 조금 번거롭게 이를 성공할 수 있었는데,


만들어진 TabbedActivity 클래스에서 프래그먼트를 Inflate 하는 


onCreateView 부분에 기존 액티비티에서 사용하던 방식대로 뷰를  참조하고, 


애니메이션을 적용하고, 버튼들을 선언해 사용할 수 있음을 확인했다.



조금 다르게 적용해줘야하는 점은 각 프래그먼트에 해당하는 뷰를 따로 선언을 해주고,


선언해 준 각 뷰에서 findViewById를 사용해 뷰 요소들을 불러오고 사용해야만 한다는 점이다.


예 ) 


public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {


// inflate할 뷰 프래그먼트를 선언

View viewOne = inflater.inflate(R.layout.activity_one, container, false);

View viewTwo = inflater.inflate(R.layout.activity_two, container, false);


// 각 뷰의 레이아웃 요소를 참조 및 제어

TextView textview_in_one = viewOne.findViewById(R.id.textview_in_one);

TextView textview_in_two = viewTwo.findViewById(R.id.textview_in_two);


// 페이지 카운트에 따라 순차적으로 뷰 프래그먼트를 return

if (pageCount == 0) {

pageCount++;

return viewOne;

} else {

return viewTwo;

}

}



기존 코드 양이 많다보니 따로 바깥에 선언해 데려오고 싶었는데, 바깥 클래스가 static으로 되어있어


지금은 내부에 전부 선언을 해 둔 상태다. 



static class 인 PlaceholderFragment를 non static으로 사용해도 무방한지 등에 대해서 시행착오를 거치면


좀 더 깔끔하게 프래그먼트 제어가 가능하지 않을까 싶다.




< 참조 >


http://itmir.tistory.com/283