【问题标题】:Is it possible to get the height of soft navigation layout?是否可以获得软导航布局的高度?
【发布时间】:2014-09-18 16:34:58
【问题描述】:

是否可以获得软(虚拟)导航布局的高度?如果是,如何获得高度编程盟友?

【问题讨论】:

    标签: android d-pad


    【解决方案1】:

    这应该可行:

    Resources resources = context.getResources();
    int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
    if (resourceId > 0) {
        return resources.getDimensionPixelSize(resourceId);
    }
    return 0;
    

    【讨论】:

    • 感谢您的回复。它不起作用。即使设备具有软导航布局,它也会返回 0。
    【解决方案2】:
    DisplayMetrics metrics = new DisplayMetrics();
    

    在没有软导航布局的情况下获取屏幕指标

    getActivity().getWindowManager().getDefaultDisplay()
                        .getMetrics(metrics);
    int usableHeight = metrics.heightPixels;
    

    使用软导航布局获取屏幕指标

    getActivity().getWindowManager().getDefaultDisplay()
                        .getRealMetrics(metrics);
    int realHeight = metrics.heightPixels;
    

    当你从 realHeight 中减去 usableHeight 时,你会得到软导航布局的实际高度。

    注意:getRealMetrics() 方法仅在 Api 级别大于或等于 17 时有效,否则将无效。因此,在获取显示指标之前检查构建版本

    【讨论】:

      猜你喜欢
      • 2019-04-04
      • 1970-01-01
      • 2018-07-02
      • 1970-01-01
      • 2019-08-30
      • 2016-03-05
      • 2015-06-10
      • 2011-11-26
      • 2016-10-14
      相关资源
      最近更新 更多