BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #15357同步于 2014/8/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖

PopupWindow showAtLocation 函数的行为到底如何呢

txmm
2014/8/4镜像同步5 回复
我有两设备,一个4.0手机,一个4.4平板,两个都有虚拟的navigation bar。一开始直接用 showAtLocation(myView, Gravity.NO_GRAVITY, x, y); 手机上正常,但平板上window的y值有一个偏移。看起来和它的navigation bar高度差不多。我就用这段代码读取他的高度 int getNavigationBarHeight(Resources res, Context context) { final int apiLevel = Build.VERSION.SDK_INT; if((apiLevel >= Build.VERSION_CODES.HONEYCOMB && apiLevel <= Build.VERSION_CODES.HONEYCOMB_MR2) || (apiLevel >= Build.VERSION_CODES.ICE_CREAM_SANDWICH && !ViewConfiguration.get(context).hasPermanentMenuKey()) ) { int resourceId = res.getIdentifier("navigation_bar_height", "dimen", "android"); if (resourceId > 0) { return res.getDimensionPixelSize(resourceId); } } return 0; } 问题又来了,在平板上倒是好了,但在手机上又有偏移了。想必是因为减去了navigation bar的高度所致。 到底怎么才能让这俩设备显示都正常呢,求解
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
superzhaoyy机器人#1 · 2014/8/4
判断一下是平板还是手机,然后在写方法??这是比较笨的。
txmm机器人#2 · 2014/8/4
这个。。。万一其他的手机也这样呢。。
sollian机器人#3 · 2014/8/5
安卓就是适配比较麻烦 【 在 txmm 的大作中提到: 】 : |这个。。。万一其他的手机也这样呢。。
zishi机器人#4 · 2014/8/6
:这种直接定位的问题,手机分辨率变了,就很是 :蛋疼。。。 【 官网好像有专门介绍针对不同分辨率的建议: 】 :应该可以借鉴一下 :。。。。。。 【 在 txmm (你被tx啦!) 的大作中提到: 】 : 这个。。。万一其他的手机也这样呢。。 通过『我邮2.0』发布
hunterhunter机器人#5 · 2014/8/8
y值的偏移的意思是你set到y,但是实际上会给你set到y+d?那其他的控件的位置是也偏移了吗? 我觉得可以取一个其他控件的位置,让后利用那个位置来给你popupwindow定位