首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有可能在Android中找到软按钮条的位置?

有没有可能在Android中找到软按钮条的位置?
EN

Stack Overflow用户
提问于 2017-09-16 22:44:13
回答 1查看 189关注 0票数 0

我正在试图定位Android中软按钮条的位置(在这里,它们不是硬件回退、菜单等按钮,而是显示在屏幕上)。

我知道如何获得实际窗口大小(以像素为单位)

代码语言:javascript
复制
Display d = getWindowManager().getDefaultDisplay();
DisplayMetrics realDisplayMetrics = new DisplayMetrics();
DisplayMetrics displayMetrics = new DisplayMetrics();

d.getRealMetrics(realDisplayMetrics);
d.getMetrics(displayMetrics);

..。然后看看“常规”显示指标是否与“真实”显示指标相比较。因此,我知道软按钮条是在水平还是垂直位置(以及它是多少像素),但我不知道它是在左边还是在右边。

有什么办法能找回那个吗?

编辑:代码的上下文在一个活动中(按要求)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-17 00:06:39

系统窗口所在位置(如状态栏和导航栏)的唯一可靠指示是通过使用系统窗口内嵌(如我为什么要在fitsSystemWindows上写博客中所解释的)。

在API 21之前,这要求您的活动的根视图是重写fitsSystemWindows()的子类-传递给您的Rect将告诉您状态栏/导航栏的大小(取决于您在活动中设置了哪些标志)。

但是,在API 21+上,您可以不使用ViewCompat.setOnApplyWindowInsetsListener创建自定义视图就可以这样做。

代码语言:javascript
复制
ViewCompat.setOnApplyWindowInsetsListener(yourRootView,
    new OnApplyWindowInsetsListener() {
      @Override
      public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
        // Use insets.getSystemWindowInsetBottom(), etc to extract
        // the size and location of the system windows
        return ViewCompat.onApplyWindowInsets(v, insets);
      }
    });
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46259099

复制
相关文章

相似问题

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