본문 바로가기

ANDROID

[안드로이드] Swipe View 적용을 위한 TabbedActivity 생성 및 풀스크린 레이아웃 적용

기존에 버튼 형태로 넘어가던 결과화면을 보기 좋게 Swipe View로 만들어보기 위해 서치 및 적용을 했다



우선 참조자료 대로 합친 결과화면을 보여줄 TabbedActivity를 새로 만들어주면


아래와 유사한 레이아웃과 함께 fragment 레이아웃을 같이 자동으로 생성하고


이후 gradle에 필요 플러그인을 적용해두지 않았다면 알아서 안드로이드 스튜디오가


필요한 요소들을 선언하고 가져와 gradle sync를 한다.


아래는 생성된 Activity에 붙어있는 레이아웃으로, Title 및 페이지뷰를 먼저 제거하기 위해 일부 요소를


제거한 모습이다.


Action 버튼도 사용하지 않을거면 바로 삭제해도 되는데, 아직 액티비티와 연결된 부분들이 일부 있고


향후 사용해 볼 여지도 조금 있어 일단은 남겨두었다.



Viewpager로 선언된 view는 SwipeView로 넘길 뷰들이 적용되는 부분으로 이 부분을 제거하면


몇 개의 뷰를 SwipeView에 적용하려 해도 보이지 않을 것이다.




다음은 TabbedActivity의 onCreateView 부분인데, 잠깐의 테스트 결과


선언해 둔 생성할 페이지의 갯수만큼 수행이 되는 것을 확인했다.


따로 들어오는 파라미터가 있는지는 모르겠으나, 우선 나는 pageCount 변수를 두어


각 실행시마다 띄워보고자 하는 레이아웃을 차례차례 inflate해 return 시켜주도록 했다.


그 결과 기존에 각 액티비티에서 보여주던 대로 레이아웃에 애니메이션과 필요한 데이터 적용등은 수행할 수 없지만,


우선 기본적으로 선언된 레이아웃들을 가져와 스와이프 방식으로 출력할 수 있음을 확인하였다.



다음 과제는 테마 변경이었는데, 기존에 Theme.Light.NoTitleBar.FullScreen 테마를 사용해 액션바를 제거하고 풀스크린


화면을 출력해주고 있었는데, 이를 위해서는 액티비티를 AppCompatActivity를 extends 하던 걸 Activity로 변경해줘야 하던 


점이 있었다. 헌데 TabbedActivity를 생성하면서 만들어진 상당부분의 요소가 AppCompatActivity로부터 확장해야만 수행할 수 있는


것들이 많아보여 이를 그대로 두고, 테마만을 손 대 기존에 보여주던 대로 레이아웃을 출력하고자 했다.


이를 위해 styles.xml에 커스텀 테마를 만들어 필요한 요소들을 선언해주었다.




< 참조 >


https://stackoverflow.com/questions/20653305/full-screen-theme-for-appcompat?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa


https://thdev.tech/androiddev/2017/05/06/Android-Studio-Create-Swipe-View.html