我在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度,这更可能是导航栏,而不是状态栏。好吧,很高兴你明白了。干杯! –