음. Layout_toLeftOf 속성과 Layout_alignParentRight을 이용해 볼까요.
2번라인, Linear대신에 Relative를 사용하고 11,12,18라인이 추가되었습니다.
11번라인 : RelativeLayout의 오른쪽면에 맞춘다
12번라인 : 이 TextView에 text라는 id를 붙여준다
18번라인 : id text인 뷰의 왼쪽에 붙인다.
18번라인에서 +를 쓰지않는것은 이미 존재하는 id를 참조하는 것이기 때문입니다. ^^
실행결과는 설명보시면 대충 예측하셨으리라 생각합니다만,ㅎ
Absolute Layout은 절대좌표로 위치를 지정하는 레이아웃입니다.
그런데 이런 방식은 단말기의 기종에따라,, 해상도에따라 완전히 불안정하기 때문에 현재는 deprecated 선언되었습니다.
따라서 자세한 설명은 배제합니다!
Frame Layout
아주 간단합니다.
무조건 좌 상단에 배치하는 레이아웃입니다.
아니 이게 그럼 어따쓰는것이냐.
Visible 속성을 이용할 수 있기때문에, 모두 같은 위치에 출력이되지만 상황에따라 다른 뷰를 보이게 할 수 있습니다.
때문에 페이지 전환등의 기능을 구현할때 자주 사용되는 레이아웃입니다.
버튼 클릭에 따라 특정 뷰가 보였다 안보였다 하는 식의 구현이 확실한 예제지만, 아직 버튼 클릭시의 메세지 처리에 대해 포스팅하지 않았기때문에 버튼클릭은 무시하고 그냥 특정 뷰가 보이는지 안보이는지만 확인하도록 합시다.
17번라인을 보면 invisible이라고 표시 되어 있군요.
그럼 Button은 보이지 않겠죠 . ?
visibility는 default로 visible이기 때문에 비교를 위해 TextView에는 따로 명시하지 않았습니다.
확인해봅시다.
TableLayout
레이아웃 자체가 큰 하나의 Table 형태를 지닌 레이아웃입니다.
Table 형태를 유지하기 위해
1. Table Row 의 Layout_height는 wrap_content로 고정됩니다.( 하나의 행이 화면을 전부 차지해 버리면 안되겠죠 )
2. Child View(테이블에 들어갈 뷰) 의 layout_width는 fill_parent로 고정이됩니다. (주어진 셀안에 하나씩만 배치)
와 같은 규칙을 지니고 있습니다. 때문에 저 속성들을 건드리면 에러가 출력 되게 됩니다.
그럼 Table Layout, 하나 만들어볼까요 .!
TableLayout을 만들고 그안에 Row가 하나, 두개 있습니다.
첫 행에는 TextView 두개가,
두번째 행에는 버튼하나가 들어있군요.