首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同一应用程序在同一设备上的不同行为

同一应用程序在同一设备上的不同行为
EN

Stack Overflow用户
提问于 2013-03-28 00:49:02
回答 1查看 124关注 0票数 0

我会尽可能的精确。我写了一个应用程序,完整的代码本身并不重要

代码语言:javascript
复制
public void onWindowFocusChanged(boolean hasFocus){
    super.onWindowFocusChanged(hasFocus);

    if(hasFocus){
        globalWidth = mainLayout.getWidth();
        refillData();
    }
}

它完美地工作在我的设备(sgs2 DarkyROM hd2.1安卓版本4.0.3也检查了基于系统的2.3版本的sgs2),另一个sgs2与PilotX2.1,它也可以在华硕变压器(安卓v4.2.1)和许多其他设备与不同的屏幕尺寸。我必须说,它有不同的外观取决于它运行的设备(它动态地构建主布局,所以如果应用程序运行正确或不正确,这是非常值得注意的)。

但在一些设备上,它有奇怪的行为。例如,在运行安卓2.3.5版本的HTC (htc sense 2.1)上,它不知何故在行getWidth()返回半个屏幕宽度或实际屏幕宽度。或者sgs2 4.2.1的安卓版本,它也会返回奇怪的结果。

我试图在google和堆栈溢出中查找,以找出是否有任何特定的系统差异应该被考虑,这些差异对应用程序有如此大的影响,但什么都没有。我没有使用任何类型的设备的特定硬件,可以由系统的开发人员以不同的方式实现。

我没有考虑到的问题是什么?会不会是不同的内核使得我的应用程序的行为“有问题”?我认为这可能是不同的ROM,但我检查了至少6-8个不同的ROM,没有问题。

如果任何人熟悉这个主题或遇到类似的东西,我甚至会很高兴有一个网页的链接。我真的很沮丧。

EN

回答 1

Stack Overflow用户

发布于 2013-03-28 00:58:26

也许你可以通过使用View.makeMeasureSpec来纠正你的测量结果

代码语言:javascript
复制
mainLayout.measure(
        MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
        MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));

int height = mainLayout.getMeasuredHeight();
int width = mainLayout.getMeasuredWidth();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15664588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档