【问题标题】:Android - Height of title barAndroid - 标题栏的高度
【发布时间】:2015-01-16 08:03:46
【问题描述】:

我想获取标题栏高度(不是状态栏)

我需要这个才能知道应用可以使用的真实高度。

我在 SO 上看到了一些代码,我尝试了一下,它返回了 height=0。

所以,我进行了更多搜索,发现我必须将它放在一个可运行文件中并使用延迟后调用它。

代码如下:

    Handler mHandler = new Handler();

    Runnable r = new Runnable() {  
        @Override  
        public void run() {  
            Rect frame = new Rect();  
            getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);  
            int titleHeight = frame.top;  
            Log.d(TAG, titleHeight); 
        }  
    };  

    mHandler.postDelayed (r, 200);

这是有效的。 Log.D 显示正确的高度,但现在出现了一个新问题。 我无法在我的 onCreate 中使用 titleHeight 变量进行进一步编程。

怎么办?

谢谢, 阿杰

【问题讨论】:

标签: android runnable titlebar


【解决方案1】:

该变量的范围在 run 方法内。如果要引用该变量,则应将其更改为更大的范围(在此方法之外定义它)。

【讨论】:

  • 我做到了。但是在runnable之外,变量为零!而不是实际计算的高度...
  • 这是因为postDelayed
  • 您仍然需要设置变量的值,但它需要在该方法之外的范围内访问它。
  • @Deuterium,那么在可运行对象之外使用它的解决方案是什么?我已经在 runnable 之外定义了它。
  • @Deuterium,另一个问题建议使用已知的标题高度。我想计算一下。
猜你喜欢
  • 2012-06-07
  • 1970-01-01
  • 2012-09-25
  • 1970-01-01
  • 1970-01-01
  • 2011-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多