我在這裏查看了很多線程,試圖瞭解爲什麼會發生這種情況,但我無法用頭圍住它。通過線上比例調整GUI元素的尺寸
在我的RelativeLayout中,我有4個HorizontalScrollViews(HSV)位於菜單(這是alignedParentBottom)之上。
我想均勻地放置這個菜單上方的4個HSV。通過我的計算,我應該能夠拿到設備高度,減去菜單高度,然後除以4,得到一個單獨的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行太大而不適合菜單上方的空間)。
任何人都可以對此有所瞭解嗎?非常感謝!