โซลูชันเต็มหน้าจอที่ถูกจับคู่:
วิธีการแก้ปัญหานี้อาจดูเหมือนวิธีแก้ปัญหา แต่จริง ๆ แล้วบัญชีว่าแอปของคุณเป็นแบบเต็มหน้าจอ (หรือที่ซ่อนแถบสถานะ) หรือไม่:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point(); display.getSize(size);
int barheight = size.y - findViewById(R.id.rootView).getHeight();
วิธีนี้หากแอปของคุณเต็มหน้าจอในปัจจุบันbarheight
จะเท่ากับ 0
โดยส่วนตัวฉันต้องใช้สิ่งนี้เพื่อแก้ไขพิกัด TouchEvent สัมบูรณ์ให้กับบัญชีสำหรับแถบสถานะดังนี้:
@Override
public boolean onTouch(View view,MotionEvent event) {
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point(); display.getSize(size);
int YCoord = (int)event.getRawY() - size.y + rootView.getHeight());
}
และนั่นจะได้รับพิกัด y ที่แน่นอนไม่ว่าจะเป็นแอปแบบเต็มหน้าจอหรือไม่
สนุก