Java 线性布局问题[Android]
好吧,我瞧不起自己。它实际上让我困惑,因为它在模拟器上显示得很好,只是在我的手机上没有 在emulator上,我看到定制的SurfaceView\u映射对象占据了整个屏幕,除了底部的EditText文本框,它应该在哪里。当我在我的摩托罗拉Droid上运行相同的代码,相同的一切时,任何地方都看不到EditText 我发现我缺少了一些我所拥有的LinearLayout实现。到目前为止,我一直在轻松地学习如何使用另一个API的布局管理器 代码如下:Java 线性布局问题[Android],java,android,user-interface,view,android-linearlayout,Java,Android,User Interface,View,Android Linearlayout,好吧,我瞧不起自己。它实际上让我困惑,因为它在模拟器上显示得很好,只是在我的手机上没有 在emulator上,我看到定制的SurfaceView\u映射对象占据了整个屏幕,除了底部的EditText文本框,它应该在哪里。当我在我的摩托罗拉Droid上运行相同的代码,相同的一切时,任何地方都看不到EditText 我发现我缺少了一些我所拥有的LinearLayout实现。到目前为止,我一直在轻松地学习如何使用另一个API的布局管理器 代码如下: _map = new Map(this);
_map = new Map(this);
_chatText = new EditText(this);
layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 1));
layout.setGravity(Gravity.BOTTOM);
layout.addView(_map, 0);
layout.addView(_chatText, 1);
setContentView(layout);
看起来很前卫,所以我真的不知道为什么它在实际的Android设备上运行时会吃掉我的EditText。遗憾的是,我已经花了很长时间让它在模拟器中正确显示。是的,不同的手机会产生不同的结果。对我来说可能就是这样,因为我的手机也被超频到1.2ghz,并且有一个自定义rom。不管怎样,这个小问题的解决方案是在布局中添加视图的重量规格
LinearLayout.LayoutParams lpMap = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); // Verbose!
lpMap.weight = 0.15f;
然后,我使用了下面的行,而不是上面的行:
layout.addView(_map, 0, lpMap);
我希望这对某人有帮助。这无疑是一个令人困惑的局面,但有时修补一下是解决办法。虽然我回答了我自己的问题,但还是要感谢整个社区 不幸的是,您可能会在不同的手机上看到不同的结果。虽然emulator可能显示正确的结果,但在不同的设备上可能会有不同的结果。