프레임 레이아웃은 중첩(Overlay) 기능이 있어서 뷰가 추가된 순서대로 차곡차곡 쌓이는 레이아웃이다.
만일 특정 뷰만 보여지게 하고 싶다면 visibility라는 속성을 이용하면 된다.
- visible : 뷰가 보여진다. 디폴트 값이다.
- invisible : 뷰를 보진 못하지만 뷰가 그 공간을 차지한다.
- gone : 뷰를 보지도 못하고 뷰가 그 공간을 차지하지도 않는다.
다음과 같이 이미지뷰를 두 개 생성해 놓고 먼저 생성한 이미지 뷰는 invisible 속성을 준다.
그러면 나중에 생성한 이미지 뷰만 보이게 된다.
이제 이미지를 클릭했을 때 다른 이미지가 보이도록 해 보겠다.
xml파일이 아닌 소스 코드에서 소스를 수정하면 된다.
소스 코드가 어려운 구조는 아니다.
xml에서 onClick 메서드를 지정해줄 경우
- 메서드의 공개 범위가 public이어야 한다.
- 매개변수로 View 타입을 하나 받아야 한다.
소스 코드에서는 visibility 속성을 이용해서 버튼을 누르면 이미지가 바뀌어서 보이게 만들었다.
물론 onClick을 소스 코드에서 지정할 수도 있다. 상관없다.
프레임 레이아웃은 예전에 프로젝트를 진행할 때 한번 써봤다.
이미지를 이런식으로 겹치게 하고 싶을 때 사용해봤다.
제약 레이아웃으로 더 쉽게 구현이 가능하다.
제약 레이아웃이 확실히 기능이 많이 좋은 것 같다.
'안드로이드 > 개념' 카테고리의 다른 글
[Android] Do It! 안드로이드 도전 03. 두 개의 이미지뷰에 이미지 번갈아 보여주기 (0) | 2021.07.25 |
---|---|
[Android] 스크롤 뷰, Scroll View (0) | 2021.07.25 |
[Android] 테이블 레이아웃, Table Layout (0) | 2021.07.21 |
[Android] 상대 레이아웃, Relative Layout (0) | 2021.07.20 |
[Android] 리니어 레이아웃, Linear Layout (0) | 2021.07.19 |