在Android上创建一个PopupWindow
16lz
2021-01-23
1. 为PopupWindow创建一个Layout---popup_window_layout.xml\
2. 初始化PopupWindow,并提供两个方法去控制PopupWindow的显示与消失
3. 创建一个Button控件来控制PopupWindow的显示与消失
注意事项:
PopupWindow必须在click action中显示或者是开启一个线程去显示,不能直在
oncreate的时候显示一个PopupWindow
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/LinearLayout_popupwindow" android:layout_width="wrap_content"android:layout_height="wrap_content"><TextView android:id="@+id/TextView_popupwindow"android:layout_width="wrap_content" android:layout_height="wrap_content"android:text="I am PopupWindow..." android:drawableTop="@drawable/controlbar_homepage"></TextView></LinearLayout>
2. 初始化PopupWindow,并提供两个方法去控制PopupWindow的显示与消失
/** * show popup window */private void showPopupWindow() {// if popupWindow is null then initialize itif (popupWindow == null) {// get layout inflater from system service of LAYOUT_INFLATER_SERVICELayoutInflater layoutInflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);View view = layoutInflater.inflate(R.layout.popup_window_layout,null);popupWindow = new PopupWindow(view, LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);}// show popup window on specified location and update itpopupWindow.showAtLocation(this.findViewById(R.id.LinearLayout_main),Gravity.CENTER_VERTICAL, 20, 20);popupWindow.update();}/** * clos popup window if popup window is not null */private void closePopupWindow() {if (popupWindow != null) {popupWindow.dismiss();}}
3. 创建一个Button控件来控制PopupWindow的显示与消失
// initialize bShow button and set an OnClickListener to itbShow = (Button) this.findViewById(R.id.Button_show_popupwindow);bShow.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (!isClick) {showPopupWindow();isClick = true;} else {closePopupWindow();isClick = false;}}});
注意事项:
PopupWindow必须在click action中显示或者是开启一个线程去显示,不能直在
oncreate的时候显示一个PopupWindow
更多相关文章
- Android学习札记29:对线程更新UI界面的一些理解(2)
- Android的线程和线程池--《Android开发艺术探索》阅读笔记——第
- Android/Bluetooth 初始化流程
- 【Android】Java四种线程池的使用
- Android使用Thread+Handler实现非UI线程更新界面
- Android之——多线程断点续传下载示例