2016-09-24 2 views
1

두 행의 레이아웃이있는 Container을 만들고 두 번째 것은 첫 번째 높이의 두 배가되고 BorderLayout의 남쪽 위치에 컨테이너를 놓아야합니다. 나는이 행을 두 행과 한 열로 된 TableLayout을 사용하여 높이 백분율을 각각 33과 67로 설정하려고했습니다. 그러나 TableLayout은 "남쪽"영역이 아닌 전체 화면을 채 웁니다. javadocs은 높이 비율이 TableLayout 인 컨테이너라고 가정하는 "상위"를 나타냄을 나타냅니다. 그러나 분명히 문제의 부모가 전시 될 것입니다.TableLayout heightPercentage : 무엇의 비율?

다음으로 3 행 1 열로 된 TableLayout을 작성하여 수직 스팬 2의 하위 내용을 작성했습니다. 그러나 맨 아래 행이 사라졌습니다.

간과 한 해결책이 있습니까?

답변

0

레이아웃에는 두 가지 단계가 있으며 원하는 크기를 요청하고 할당 된 크기를 처리합니다.

요청 단계에서 우리는 모든 항목의 최종 크기를 갖지 않으므로 "guesstimated"입니다 (놀랍게도 내 맞춤법 검사기에서 플래그를 지정하지 않았습니까?).

우리가 레이아웃을 수행함에 따라 이미 원하는 크기를 기준으로 할당 된 크기가 있으며 할당 된 크기를 기준으로 백분율이 계산됩니다.

테두리 레이아웃의 가운데에 표 배치 컨테이너를 배치하면 사용 가능한 모든 공간이 생기므로 계산 단계의 기본 크기 측면은 의미가 없어지고 백분율은 구성 요소에 할당 된 공간의 비율이됩니다. "모든 사용 가능한 공간"입니다. 자연스럽게 스크롤링하면 완전히 다른 차원으로 옮겨집니다.