android Navigator的高度计算和判断是否显示

进入互联网行业几天了, 从手机行业转到互联网行业也在慢慢的适应: IDE工具的使用(之前一直在Ubuntu 命令行进行开发), 版本管理工具,代码架构等等这些都需要重新适应。 好在本人还有一些底子,所以适应起来还算快^_^.   今天就从昨天遇到的一个小问题开始分享

先上图

如图所示,在使用popupwindow显示menu时,  底部navigator与确定按钮重叠。

解决此问题思路就是判断底部navigator是否已经打开, 如果打开则计算navigator的高度, 然后在调用popupwindow.showAtLocation时, 将y坐标做位移navigator的高度

具体方法可以看下面两个方法: 分别是判断navigator的高度和navigator是否显示---mcoy是本人的英文名称^_^

/**

* add by mcoy for bugID=427

* @return 底部状态栏的高度

*/

private int getNavigationBarHeight() {

if(!hasSoftKeys((WindowManager) context.getSystemService(Context.WINDOW_SERVICE))){

return 0;

}

Resources resources = context.getResources();

int resourceId = resources.getIdentifier("navigation_bar_height","dimen", "android");

int height = resources.getDimensionPixelSize(resourceId);

Log.e("mcoy", "the height is " + height);

return height;

}

/**

* add by mcoy for bugID=427, 判断底部navigator是否已经显示

* @param windowManager

* @return

*/

private boolean hasSoftKeys(WindowManager windowManager){

Display d = windowManager.getDefaultDisplay();

DisplayMetrics realDisplayMetrics = new DisplayMetrics();

d.getRealMetrics(realDisplayMetrics);

int realHeight = realDisplayMetrics.heightPixels;

int realWidth = realDisplayMetrics.widthPixels;

DisplayMetrics displayMetrics = new DisplayMetrics();

d.getMetrics(displayMetrics);

int displayHeight = displayMetrics.heightPixels;

int displayWidth = displayMetrics.widthPixels;

return (realWidth - displayWidth) > 0 || (realHeight - displayHeight) > 0;

}

时间: 2024-08-10 21:30:29

android Navigator的高度计算和判断是否显示的相关文章

优化UITableViewCell高度计算的那些事

本文转载至 http://blog.sunnyxx.com/2015/05/17/cell-height-calculation/ 我是前言 这篇文章是我和我们团队最近对 UITableViewCell 利用 AutoLayout 自动高度计算和 UITableView 滑动优化的一个总结.我们也在维护一个开源的扩展,UITableView+FDTemplateLayoutCell,让高度计算这个事情变的前所未有的简单,也受到了很多星星的支持,github链接请戳我 这篇总结你可以读到: UIT

android获得屏幕高度和宽度

android获得屏幕高度和宽度 android获取屏幕的高度和宽度用到WindowManager这个类,两种方法: 1.WindowManager wm = (WindowManager) getContext()                     .getSystemService(Context.WINDOW_SERVICE);      int width = wm.getDefaultDisplay().getWidth();      int height = wm.getDe

ListView嵌套ScrollView后,设置dividerHeight属性后高度计算

当我们需要在listView外层嵌套ScrollView,这样两个scroll滚动效果会产生相互影响,为了避免这个,我们通常是禁止listView滚动, 把ListView总高度计算出来,完全显示. 计算listView的总高度只需要自定义一个mylistView继承listView,重写onMeasure(...)方法就搞定了. @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { i

《转》优化UITableViewCell高度计算的那些事

我是前言 这篇文章是我和我们团队最近对 UITableViewCell 利用 AutoLayout 自动高度计算和 UITableView 滑动优化的一个总结.我们也在维护一个开源的扩展,UITableView+FDTemplateLayoutCell,让高度计算这个事情变的前所未有的简单,也受到了很多星星的支持,github链接请戳我 这篇总结你可以读到: UITableView高度计算和估算的机制 不同iOS系统在高度计算上的差异 iOS8 self-sizing cell UITableV

IE7标准模式select高度计算方式

IE7标准模式下select的高度设定并不一定有效. IE7的select高度的显示和option有关.例如:(以下计算忽略border,padding,margin) 一个option高度是22px, css样式: select{height: 100px;} 100/22 = 4.xxxx, 那么实际的高度就是4*22 = 88px 如果设定的是 select{height: 110px;} 110/22 = 5, 实际高度就是5*22 = 110px 如果高度不够下一个option显示的话

UITableViewCell 高度计算从混沌初始到天地交泰

[原创]UITableViewCell 高度计算从混沌初始到天地交泰 本文主要基予iOS UITableViewCell 高度自适应计算问题展开陈述,废话少说直入正题: UITableView控件可能是iOS中大家最常用的控件了(滚动视图.cell重用.卡顿优化),今天要讨论的不是这些高大上的话题,今天的话题只是cell高度的计算. * 传统frame布局下UITableViewCell 高度计算 * AutoLayout下UITableViewCell高度计算(iOS6.7) * UITabl

UILabel 自动高度计算

#pragma mark UILabel 自动高度计算 - ( void ) labelAutoHeight:(UILabel *) contentLabel:(NSString *) text {           UIFont *font = [UIFont systemFontOfSize:12];      contentLabel.font = font;      [contentLabel setNumberOfLines:0];      contentLabel.lineBr

[转]优化UITableViewCell高度计算的那些事

我是前言 这篇文章是我和我们团队最近对 UITableViewCell 利用 AutoLayout 自动高度计算和 UITableView 滑动优化的一个总结.我们也在维护一个开源的扩展,UITableView+FDTemplateLayoutCell,让高度计算这个事情变的前所未有的简单,也受到了很多星星的支持,github链接请戳我 这篇总结你可以读到: UITableView高度计算和估算的机制 不同iOS系统在高度计算上的差异 iOS8 self-sizing cell UITableV

Android通知栏的高度获取

public static int getStatusBarHeight(Context context){ Class<?> c = null; Object obj = null; Field field = null; int x = 0, statusBarHeight = 0; try { c = Class.forName("com.android.internal.R$dimen"); obj = c.newInstance(); field = c.getF