showAtLocation(parent, gravity, x, y)方法使用
- 方法含義:pop用于顯示的位置及其偏移量
- 參數(shù)含義:
-
parent
:其所參考的父控件藻丢。 -
gravity
: 相對于父控件的位置攘滩,類似于LinearLayout
的grivity
屬性。
-
-
x
:x軸偏移量闰歪。 -
y
: y軸偏移量 - 剖析:該方法顯示位置的控制類似于將子控件添加到
LinearLayout
中,通過grivity
屬性控制顯示位置一樣,但pop并不是添加到parent中叉橱,只是類似的位置顯示模式。 - 踩坑:
- 當(dāng)
parent
為activity
的根節(jié)點者蠕,popwindow
充滿activity
顯示時窃祝,其Gravity
的控制顯示不在是參考parent
而是參考手機當(dāng)前的屏幕位置,及狀態(tài)欄的位置也會顯示同時會被狀態(tài)欄遮擋踱侣。
解決方案:
通過設(shè)置popwindow
的高度等于actiivity
的高度粪小,并且grivity
的屬性為Grivity.TOP
,設(shè)置y
軸偏移量為狀態(tài)欄的高度抡句。 - 當(dāng)
/**
* 獲取狀態(tài)欄高度
*
* @return
*/
public static int getStatusHeight() {
int result = 0;
int resourceId = MDWApplication.getApplication().getResources()
.getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = MDWApplication.getApplication().getResources()
.getDimensionPixelSize(resourceId);
}
return result;
}