PopupWindow顯示位置錯誤(7.0)

在這次做項目篩選功能時需要用到PopupWindow拦焚,但是在做的過程中發(fā)現(xiàn)一個問題偎蘸,如果要讓POP顯示在指定view正下方時帚称,調(diào)用showAsDropDown()這個方法嘹叫,而去pop窗口高度是match_parent嫩絮,在7.0以下系統(tǒng)顯示正常丛肢,但是在7.1顯示就不正常,不是自己想要的效果剿干。

popupWindow設(shè)置了居中或者底部對齊蜂怎,但是在7.0機器是跑到頂部。

很明顯這個bug是和我們設(shè)置了Gravity有關(guān)置尔。

展示popupWindow的函數(shù)有兩個杠步,showAtLocation 和 update。

重點看了那兩個函數(shù)的API 24 和 API 23 的區(qū)別榜轿。

解決方案一

我在24版本使用showAtLocation(View parent, int gravity, int x, int y)幽歼。其中parent只要為當(dāng)前頁面的view即可,gravity用Gravity.NO_GRAVITY差导,x,y為你要顯示的位置试躏。如果要顯示在某個view的下面,就獲取該view的坐標(biāo)就好设褐。

if (Build.VERSION.SDK_INT >= 24) {

 //7.0以上系統(tǒng)

//獲取目標(biāo)控件在屏幕中的坐標(biāo)位置

int[] location = new int[2];

anchor.getLocationOnScreen(location);

mPopupWindow.showAtLocation(anchor, Gravity.NO_GRAVITY, 0, location[1] );

} else {

mPopupWindow.showAsDropDown(anchor);

}

方法二

重寫popWindows的showAsDropDown方法

public class CustomPopupWindowextends PopupWindow {

public CustomPopupWindow(Context context) {

super(context, null);

}

@Override

public void showAsDropDown(View anchor) {

if (Build.VERSION.SDK_INT >= 24) {

Rect rect = new Rect();

anchor.getGlobalVisibleRect(rect);

int h = anchor.getResources().getDisplayMetrics().heightPixels - rect.bottom;

setHeight(h);

}

super.showAsDropDown(anchor);

}

}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末颠蕴,一起剝皮案震驚了整個濱河市泣刹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌犀被,老刑警劉巖椅您,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異寡键,居然都是意外死亡掀泳,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門西轩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來员舵,“玉大人,你說我怎么就攤上這事藕畔÷砥В” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵注服,是天一觀的道長韭邓。 經(jīng)常有香客問我,道長溶弟,這世上最難降的妖魔是什么女淑? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮辜御,結(jié)果婚禮上鸭你,老公的妹妹穿的比我還像新娘。我一直安慰自己我抠,他們只是感情好苇本,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著菜拓,像睡著了一般瓣窄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纳鼎,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天俺夕,我揣著相機與錄音,去河邊找鬼贱鄙。 笑死劝贸,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的逗宁。 我是一名探鬼主播映九,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瞎颗!你這毒婦竟也來了件甥?” 一聲冷哼從身側(cè)響起捌议,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎引有,沒想到半個月后瓣颅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡譬正,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年宫补,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片曾我。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡粉怕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抒巢,到底是詐尸還是另有隱情斋荞,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布虐秦,位于F島的核電站,受9級特大地震影響凤优,放射性物質(zhì)發(fā)生泄漏悦陋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一筑辨、第九天 我趴在偏房一處隱蔽的房頂上張望俺驶。 院中可真熱鬧,春花似錦棍辕、人聲如沸暮现。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽栖袋。三九已至,卻和暖如春抚太,著一層夾襖步出監(jiān)牢的瞬間塘幅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工尿贫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留电媳,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓庆亡,卻偏偏與公主長得像匾乓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子又谋,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 最近比較偷懶哈拼缝,已經(jīng)有一段時間沒有更新分享了娱局,一個原因也是最近需要接觸前端的一些知識,另外也是項目比較忙珍促,周末事情...
    juexingzhe閱讀 27,086評論 1 15
  • ¥開啟¥ 【iAPP實現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程铃辖,因...
    小菜c閱讀 6,426評論 0 17
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,185評論 25 707
  • 本文出自 “阿敏其人” 簡書博客,轉(zhuǎn)載或引用請注明出處猪叙。 前言 注:為書寫方便娇斩,本文的popup代表PopupWi...
    阿敏其人閱讀 5,225評論 3 26
  • 在這次項目需要用到PopupWindow,但發(fā)現(xiàn)如果你用showAsDropDown()這個方法穴翩,讓pop顯示在某...
    嘮嗑008閱讀 1,478評論 0 1