Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 线性布局问题[Android]_Java_Android_User Interface_View_Android Linearlayout - Fatal编程技术网

Java 线性布局问题[Android]

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);

好吧,我瞧不起自己。它实际上让我困惑,因为它在模拟器上显示得很好,只是在我的手机上没有

在emulator上,我看到定制的SurfaceView\u映射对象占据了整个屏幕,除了底部的EditText文本框,它应该在哪里。当我在我的摩托罗拉Droid上运行相同的代码,相同的一切时,任何地方都看不到EditText

我发现我缺少了一些我所拥有的LinearLayout实现。到目前为止,我一直在轻松地学习如何使用另一个API的布局管理器

代码如下:

    _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可能显示正确的结果,但在不同的设备上可能会有不同的结果。