[Android] 使用PopupWindow 彈出客製化視窗

有時候我們不想用Android 原本的彈出對話框 (Dialog),

而想要自己定義彈出視窗的大小、樣式、功能、動畫…等等

這時候就可以考慮使用 PopupWindow

如圖可以得到類似彈出視窗的效果

使用方法如下

設計樣式xml、宣告、初始化、show 這幾個步驟即可

背景顏色、裡面要有什麼元件(TextView、按鈕…等等)

private PopupWindow popupWindow

再把剛剛設計好的Layout 指定給 View 讓 PopupWindow使用

這邊一定要注意必須設定PopupWindow的寬跟高

private void initPopupWindow() { View view = LayoutInflater.from(context) .inflate(R.layout.popupwindow_layout, null); popupWindow = new PopupWindow(view); popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT); popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT); btnConfirm = (Button) view.findViewById(R.id.btnConform); btnConfirm.setOnClickListener(listener); }

後面的參數為設定要顯示的位置

popupWindow.showAtLocation(view, Gravity.CENTER_HORIZONTAL, 0, 0);

這樣就完成PopupWindow了

  • 點下主畫面按鈕讓PopupWindow顯示、再點PopupWindow裡的按鈕讓它關閉
popupWindow.dismiss();

附上 SourceCode


Originally published at 17wei.wordpress.com on September 13, 2016.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.