一、什麼是Popwindow
1、Popwindow是一種類似於Dialog的浮動窗口,它可以在當前的Activity或者Fragment之上彈出。一般情況下,它會有一個較為短暫的生命周期,並且不能遮擋整個屏幕。
2、Popwindow常用於下拉列表、選擇菜單、ToolTip提示、彈出框等UI元素的實現。
二、Popwindow的創建
1、使用Popwindow的3個核心步驟:①創建、②設置屬性、③顯示。
2、創建Popwindow的過程中需要用到 View 和 LayoutInflator 這兩個類。
//創建視圖 View popView = LayoutInflater.from(context).inflate(R.layout.pop_view, null); //實例化Popwindow final PopupWindow popupWindow = new PopupWindow(popView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
3、此時,我們已經成功創建了一個Popwindow,接下來我們需要對其進行設置屬性。
三、Popwindow的屬性設置
1、Popwindow的屬性設置包括以下幾個方面:大小、位置、動畫、背景、可否聚焦、可否觸摸外部消失、點擊事件等。
2、以下是常用的Popwindow屬性設置代碼:
popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);//設置寬度 popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);//設置高度 popupWindow.setAnimationStyle(R.style.PopAnim);//設置動畫 popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//設置背景顏色 popupWindow.setOutsideTouchable(true);//設置可否觸摸外部取消顯示 popupWindow.setFocusable(true);//設置焦點 popView.setOnClickListener(new View.OnClickListener() {//設置點擊事件 @Override public void onClick(View v) { Toast.makeText(context, "Click pop view", Toast.LENGTH_SHORT).show(); } }); popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {//設置消失監聽 @Override public void onDismiss() { Toast.makeText(context, "Popwindow dismissed", Toast.LENGTH_SHORT).show(); } });
四、Popwindow的顯示
1、Popwindow的顯示一般有以下幾種方法: ①showAsDropDown、②showAtLocation、③showAsDropDown與showAtLocation相比,前者可以讓Popwindow相對於某個View彈出。
2、showAsDropDown的使用示例:
View anchor = findViewById(R.id.anchor_view); popupWindow.showAsDropDown(anchor, 0, 0, Gravity.CENTER);//顯示在控件底部居中
五、總結
Popwindow是一種非常實用的浮動窗口,在Android應用開發中常常被用於菜單、列表、提示等UI實現。創建Popwindow需要使用LayoutInflator和View兩個類,屬性設置可使用setWidth、setHeight、setAnimationStyle、setBackgroundDrawable、setOutsideTouchable、setFocusable等方法進行設置,最後可通過showAsDropDown或showAtLocation來顯示Popwindow。掌握Popwindow的創建、設置和顯示方法後,我們可以很好地運用它實現各種UI元素的效果。
原創文章,作者:PQCOL,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/370604.html