Android 編程下 PopupWindow 窗口的彈出


PopupWindow 是一個可以顯示在當前 Activity 之上的浮動容器,PopupWindow 彈出的位置是能夠改變的,按照有無偏移量,可以分為無偏移和有偏移兩種;按照參照對象的不同又可以分為兩種:相對某個控件(Anchor 錨點)的位置和在父容器內部的相對位置。

PopupWindow 的實現效果如下:

PopupWindow 的實現代碼如下:

創建 PopupWindow

LayoutInflater mLayoutInflater = (LayoutInflater) context.getSystemService(LAYOUT_INFLATER_SERVICE);
View contentView = mLayoutInflater.inflate(R.layout.pop, null)// R.layout.pop為 PopupWindow 的布局文件
PopupWindow pop = new PopupWindow(contentView, LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
pop.setBackgroundDrawable(new BitmapDrawable());                            // 指定 PopupWindow 的背景
pop.setFocusable(true);                   // 設定 PopupWindow 取的焦點,創建出來的 PopupWindow 默認無焦點

顯示 PopupWindow

// 相對某個控件的位置(正左下方),無偏移
pop.showAsDropDown(View anchor) 
// 相對某個控件的位置,有偏移,xoff 為 X 軸的偏移量,yoff 為 Y 軸的偏移量                          
pop.showAsDropDown(View anchor, int xoff, int yoff)
// 在父容器的什么位置,gravity 為相對位置,如:正中央 Gravity.CENTER、下方 Gravity.BOTTOM、Gravity.RIGHT|Gravity.BOTTOM 右下方等,后面兩個參數為 x/y 軸的偏移量。
pop.showAtLocation(View parent, int gravity, int x, int y) 

關閉 PopupWindow

pop.dismiss()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM