java - LinearLayout问题[Android]

标签 java android user-interface view android-linearlayout

好吧,我贬低自己了。这实际上让我感到困惑,因为它在模拟器上显示得很好,但在我的手机上却不行。

在模拟器上,我看到自定义 SurfaceView _map 对象占据了整个屏幕,除了底部的 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。不管怎样,解决这个小问题的方法是向添加到布局的 View 添加权重规范。

LinearLayout.LayoutParams lpMap = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); // Verbose!
    lpMap.weight = 0.15f; 

然后我使用以下行而不是上面的行:

layout.addView(_map, 0, lpMap);

我希望这对某人有帮助。这绝对是一个令人困惑的情况,但有时修补是解决方案。虽然我回答了我自己的问题,但非常感谢整个社区。

关于java - LinearLayout问题[Android],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4116172/

相关文章:

java - 初始化静态成员的单例

Android:给定单词的 Youtube 搜索应用程序

python - 在 tkinter 中是否可以有两列标签,其中一个标签位于下方和中间?

java - 匿名内部类的 ClassName 相同 - obj.getClass().getName()

java - 使用 href 作为定位器很难单击 anchor 标记

java - 编译时不断报java : invalid source release: 1. 9错误

java - 使用 api 26 构建应用程序,但使用 api 24 构建库

android - 导航架构组件 - 如何使用导航 Controller 设置/更改自定义后退或汉堡包图标?

java - java GUI 中这些被阻止的部分是什么

java - 如何在Android应用程序中频繁更新文本