返回信息流我有两设备,一个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的高度所致。
到底怎么才能让这俩设备显示都正常呢,求解
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #15357同步于 2014/8/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖
PopupWindow showAtLocation 函数的行为到底如何呢
txmm
2014/8/4镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
:这种直接定位的问题,手机分辨率变了,就很是 :蛋疼。。。
【 官网好像有专门介绍针对不同分辨率的建议: 】
:应该可以借鉴一下
:。。。。。。
【 在 txmm (你被tx啦!) 的大作中提到: 】
: 这个。。。万一其他的手机也这样呢。。
通过『我邮2.0』发布
y值的偏移的意思是你set到y,但是实际上会给你set到y+d?那其他的控件的位置是也偏移了吗?
我觉得可以取一个其他控件的位置,让后利用那个位置来给你popupwindow定位