我在XML文件中定義的一組的LinearLayout,每個具有相關聯的layout_weight的Android layout_weight的getHeight()不準確
這是XML的一部分:
<LinearLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.26"
android:orientation="horizontal"></LinearLayout>
我總共有7例如LinearLayout的LinearLayout,每個LinearLayout都有一個賦值layout_weight。所有layout_weight值都精確地加到1.
因此,我期望上面的佈局包含總屏幕高度的26%。
但是在計算:
final LinearLayout container = (LinearLayout)findViewById(R.id.container);
container.post(new Runnable() {
@Override
public void run() {
Log.e("mytag", "container Height: " + container.getHeight());
}
});
container.getHeight()只返回我值474,而我的屏幕高度爲1920像素。 1920年的26%應該是499.2 px。 474的值離期望值499相當遠。
我的getHeight方法不準確,或者我設置layout_weight的方式?
謝謝您的時間
父'LinearLayout'的實際高度是多少?你是否考慮了狀態欄? –
啊,謝謝你,邁克指出。事實證明,我測試的Nexus仿真器包含虛擬主頁,後退按鈕,位於佔用空間的屏幕底部!我沒有解釋它們。問題解決了:) – Marcus
啊,是的,那會更有意義。從你給出的數字來看,總高度大約是96度,這更可能是導航欄,而不是狀態欄。好吧,很高興你明白了。乾杯! –