PopupWindow 전체 화면 표시
layout.xml
...
생 성 할 곳 에 레이아웃 과 PopupWindow 를 예화 한 다음 표시 합 니 다.
View layout = getLayoutInflater().inflate(R.layout.layout, null);
final PopupWindow pop = new PopupWindow(layout,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
true);
pop.setBackgroundDrawable(new ColorDrawable(0xffffff));// Back
pop.showAtLocation(findViewById(R.id.title), Gravity.NO_GRAVITY, 0, 0);
팝 업 윈도 가 전체 화면 에 딱 나타 날 것 으로 기대 되 는데,실제로 상단 이 알림 표시 줄 에 가 려 져 있 는 것 을 발견 했다.
그리고 알림 표시 줄 높이 를 가 져 옵 니 다.Y 축 에서 알림 표시 줄 높이 를 이동 하면 됩 니 다.
/**
*
* @param activity
* @return
*/
public static int getStatusBarHeight(Activity activity) {
Rect frame = new Rect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
Log.d(TAG, "statusBarHeight:"+frame.top+"px");
return frame.top;
}
pop.showAtLocation(findViewById(R.id.title), Gravity.NO_GRAVITY, 0, getStatusBarHeight(this));
테스트 결과 SDK 4.4 에서 먼저 양호 한 것 으로 나 타 났 으 며 4.1,4.2 에 서 는 여전히 알림 표시 줄 에 가 려 져 있 었 다.
SDK 소스 코드 API 16 과 19 의 쇼 AtLocation 의 차이 점 이 의외로 발견 되 었 습 니 다.
Gravity.NOGRAVITY 를 Gravity.TOP|Gravity.START 로 바 꾸 면 현상 은 여전 하 다.
나중에 실험 을 했 어 요.
popupWindow.setClippingEnabled(false)가 해결 되 었 습 니 다.
공식 문 서 는 이렇게 설명 한다.
PoupupWindow showAtLocation
API 19:
if (gravity == Gravity.NO_GRAVITY) {
gravity = Gravity.TOP | Gravity.START;
}
API 16:
if (gravity == Gravity.NO_GRAVITY) {
gravity = Gravity.TOP | Gravity.LEFT;
}
팝 업 창 이 화면 범 위 를 초과 하도록 허용 합 니 다.기본적으로 창 이 화면 경계 에 끼 워 집 니 다.false 로 설정 하면 윈도 우 를 정확하게 찾 을 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.