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);
}
});
}
PS : でコードをrun()
直接記述すると、 UI がまだレンダリングされていないため、0onCreate()
が返されます。
どんな助けでも感謝します。