我曾经Runnable
找到状态栏的高度,它给出了正确的输出。
但是如何在 的方法之外访问StatusBarHeight?run()
Runnable
这是我的一段代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final RelativeLayout main = (RelativeLayout) findViewById(R.id.main);
final Rect rectgle = new Rect();
final Window window = getWindow();
main.post(new Runnable() {
@Override
public void run() {
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
int StatusBarHeight = rectgle.top;
int contentViewTop = window.findViewById(
Window.ID_ANDROID_CONTENT).getTop();
int TitleBarHeight = contentViewTop - StatusBarHeight;
Log.i("ScreenDemo", "StatusBar Height= " + StatusBarHeight
+ " , TitleBar Height = " + TitleBarHeight);
}
});
}
run()
PS:如果我直接在其中编写代码onCreate()
,它会返回0,因为 UI 尚未呈现。
任何帮助表示赞赏。