여기 왜 이렇게 많은 스레드가 있는지 살펴 보았습니다. 왜 이런 일이 발생했는지 이해하려고 시도했지만 그저 내 머리를 감쌀 수 없습니다.GUI 요소의 백분율로 크기 조정
내 RelativeLayout에는 메뉴 (layParentBottom) 위에있는 4 개의 HorizontalScrollViews (HSV)가 있습니다.
이 메뉴 위에 4 개의 HSV를 균등하게 배치하고 싶습니다.
내 계산에 따르면, 장치 높이를 가져 와서 메뉴 높이를 빼고 4로 나누면 개별 HSV 높이를 얻을 수 있습니다.
그러나 각 HSV의 높이를 설정하면 크기보다 커집니다.
(참고 :. display.getHeight은() 나는 480X800 장치입니다 정확한 치수를 반환하고, 나는 그것을 반환 deviceHeight 인쇄하는 경우 800) 여기
내 코드입니다 :RelativeLayout menuLayout = (RelativeLayout)findViewById(R.id.menuLayout);
HorizontalScrollView row1 = (HorizontalScrollView)findViewById(R.id.row1);
HorizontalScrollView row2 = (HorizontalScrollView)findViewById(R.id.row2);
HorizontalScrollView row3 = (HorizontalScrollView)findViewById(R.id.row3);
HorizontalScrollView row4 = (HorizontalScrollView)findViewById(R.id.row4);
//get current device dimensions
Display display = getWindowManager().getDefaultDisplay();
deviceWidth = display.getWidth(); //returns 480
deviceHeight = display.getHeight(); //returns 800
int menuHeight = deviceWidth/5; // 480/5 = 96
int remainingSpace = deviceHeight - menuHeight; // 800 - 96 = 704
int rowHeight = (int) (remainingSpace/4); // 704/4 = 176
menuLayout.getLayoutParams().height = menuHeight;
row1.getLayoutParams().height = rowHeight;
row2.getLayoutParams().height = rowHeight;
row3.getLayoutParams().height = rowHeight;
row4.getLayoutParams().height = rowHeight;
이 코드를 실행하면 각 행이 너무 커서 하단의 메뉴 아래에 푸시됩니다. getHeight()를 실행하면. (176), 그러나 분명히 아닙니다 (4 행이 너무 커서 메뉴 위의 공간에 맞출 수 없기 때문입니다).
누구든지이 문제에 관해 밝힐 수 있습니까? 정말 고맙습니다!