简介
PopupWindow,顾名思义弹窗.PopupWindow是与AlertDialog在形式上类似的弹窗功能,都是为了在activity最上层显示一个弹窗.但是区别是PopupWindow可以自定义出现的位置,并且可以添加入自己需要的View或者导入自己写好的xml布局
应用场景
在很多场景下都可以见到它。例如ActionBar/Toolbar的选项弹窗,一组选项的容器,或者列表等集合的窗口等等。
简单的Demo
为了了解基本的流程,我们来一个最简单demo演示一下.
创建流程:
用LayoutInflater获得xml布局View .或者直接在代码上new一个View
实例化一个PopupWindow,将View在实例化作为参数传入
配置PopupWindow参数
代码:
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
TextView textView= new TextView(Main2Activity.this);
textView.setText("测试文本");final PopupWindow popupWindow = new PopupWindow(textView,200,300);//参数为1.View 2.宽度 3.高度
popupWindow.setOutsideTouchable(true);//设置点击外部区域可以取消popupWindow
mTestButton=(Button)findViewById(R.id.test_btn);
mTestButton.setOnClickListener(newView.OnClickListener() {
@Overridepublic voidonClick(View v) {
popupWindow.showAsDropDown(mTestButton);//设置popupWindow显示,并且告诉它显示在那个View下面
}
});
}
效果图: