我想获得标题栏高度(不是状态栏)
我需要这个才能知道应用可以使用的实际高度。
我在SO上看到了一些代码,我尝试了它并返回height = 0.
所以,我做了一些搜索,我发现我必须把它放在一个runnable中并用延迟后调用它。
以下是代码:
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
显示正确的高度,但现在出现了一个新问题。
我无法使用titleHeight变量在我的onCreate中进一步编程。
怎么办?
谢谢, AJ
答案 0 :(得分:0)
该变量的范围在run方法中。如果要引用该变量,则应将其更改为更大的范围(在此方法之外定义)。