临睡觉前写个小demo学习下。
popupwindow也属于android对话框的一种,它的位置什么的是可以改变的。
首先新建工程。。。自定义一个布局(供对话框使用)
上代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn=(Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
popView(v);// 显示弹出窗口
}
});
}
private void popView(View v) {
//初始化弹窗里面的布局视图
View view = View.inflate(this, R.layout.poupup, null);
//实例化一个弹窗对象
PopupWindow popup = new PopupWindow(view, LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT, true);
//设置弹窗背景图片
popup.setBackgroundDrawable(getResources().getDrawable(
R.drawable.ic_launcher));
//显示弹窗,位置在这个按钮的下方x,y各偏移100地方
popup.showAsDropDown(v, 100, 100);
}
}
好了,运行成功。
告诉大家中途遇到的问题,popupwindow是依赖于父窗口显示的,要是直接在oncreate方法里面调用showAsDropDown就会出错哦。