Android7.0上某些PopuWindow出現顯示位置不正確問題的解決方法
本文實例講述了Android7.0上某些PopuWindow出現顯示位置不正確問題的解決方法。分享給大家供大家參考,具體如下:
情景描述:
在andorid7.0及以上系統(tǒng),點擊某個view,本來期待有一個Popuwindow在該view下面彈出(調用PopuWindow.showAsDropDown(view)方法)但結果PopuWindow卻彈出在view上方,頂在系統(tǒng)狀態(tài)欄下面。
原因分析:
在android7.0上,如果不主動約束PopuWindow的大小,比如,設置布局大小為 MATCH_PARENT,那么PopuWindow會變得盡可能大,以至于 view下方無空間完全顯示PopuWindow,而且view又無法向上滾動,此時PopuWindow會主動上移位置,直到可以顯示完全。
解決辦法:
主動約束PopuWindow的內容大小,重寫showAsDropDown方法:
@Override
public void showAsDropDown(View anchor) {
if(Build.VERSION.SDK_INT >= 24){
Rect visibleFrame = new Rect();
anchor.getGlobalVisibleRect(visibleFrame);
int height = anchor.getResources().getDisplayMetrics().heightPixels - visibleFrame.bottom;
setHeight(height);
}
super.showAsDropDown(anchor);
}
更多關于Android相關內容感興趣的讀者可查看本站專題:《Android窗口相關操作技巧總結》、《Android開發(fā)入門與進階教程》、《Android調試技巧與常見問題解決方法匯總》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結》
希望本文所述對大家Android程序設計有所幫助。
相關文章
Android編程實現設置按鈕背景透明與半透明及圖片背景透明的方法
這篇文章主要介紹了Android編程實現設置按鈕背景透明與半透明及圖片背景透明的方法,結合實例形式較為詳細的分析了Button及ImageButton的背景屬性設置技巧,非常簡單實用,需要的朋友可以參考下2015-12-12
Android 開發(fā)之Dialog,Toast,Snackbar提醒
這篇文章主要介紹了Android 開發(fā)之Dialog,Toast,Snackbar提醒的相關資料,需要的朋友可以參考下2017-03-03
android開發(fā)教程之實現listview下拉刷新和上拉刷新效果
這篇文章主要介紹了android實現listview下拉刷新和上拉刷新效果,Android的ListView上拉下拉刷新,原理都一樣,在Touch事件中操作header/footer的paddingTop屬性,需要的朋友可以參考下2014-02-02

