Android 开发 PopupWindow弹窗

简介

  PopupWindow,顾名思义弹窗.PopupWindow是与AlertDialog在形式上类似的弹窗功能,都是为了在activity最上层显示一个弹窗.但是区别是PopupWindow可以自定义出现的位置,并且可以添加入自己需要的View或者导入自己写好的xml布局

应用场景

  在很多场景下都可以见到它。例如ActionBar/Toolbar的选项弹窗,一组选项的容器,或者列表等集合的窗口等等。

简单的Demo

  为了了解基本的流程,我们来一个最简单demo演示一下.

  创建流程:

用LayoutInflater获得xml布局View .或者直接在代码上new一个View实例化一个PopupWindow,将View在实例化作为参数传入配置PopupWindow参数

从项目中粘贴出来的代码:

<code>private void initView() {
mPopupWindow = buildPopWindow();
mTvChoice = ((TextView) findViewById(R.id.tv_choice));
}

private PopupWindow buildPopWindow() {
View view = ResourcesUtils.findViewById(this, R.layout.pop_setting1); //加载布局
final PopupWindow popupWindow = new PopupWindow(view, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); //参数为1.View 2.宽度 3.高度
popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow.setFocusable(true);
popupWindow.setOutsideTouchable(true);//点击其他区域关闭popupWindow
view.findViewById(R.id.tv_environment_kaifa).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mEtAddressVideo.setText("mvideo.test.cebbank.com");
mEtPortVideo.setText("3000");
mEtPortText.setText("9003");
mEtAddressFile.setText("https://111.205.51.132:9000");
mTvChoice.setText("自定义环境");
environmentType = 1;
IMCoreInit.IP_TYPE=1;

popupWindow.dismiss();



}
});
return popupWindow;
}/<code>