获得 LayoutInflater 实例的三种方式
1.LayoutInflater inflater = getLayoutInflater(); //调用Activity的getLayoutInflater()
2.LayoutInflater localinflater =(LayoutInflater)context.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
3. LayoutInflater inflater = LayoutInflater.from(context);
PopupWindow 作为一种用户提醒 而且其开销也比Activity要小,PopupWindow有点类似于Dialog,相同点在于都是弹出窗口,并且都可以对其进行自定义显示,并且里面的监听组件,进行相应的操作,但它与Dialog又有很大的区别,PopupWindow只是弹出窗口,不会使宿主Activity组件失去焦点,也就是说PopupWindow弹出后,你仍可以与宿主Activity进行交互,Dialog却不能做到这一点
注意的事:PopupWindow 显示只能通过事件触发,如onclick事件,不能在非用户事件中显示示,否则可能报windowleaked的
弹出:有2种方式:一个是下拉方式 一个是指定位置
下拉:
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
pop.showAsDropDown(v);
}
});
- 指定位置:
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
pop.showAtLocation(findViewById(R.id.main), Gravity.CENTER, 20, 20);
}
. 取消
view.findViewById(R.id.helloButton).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
pop.dismiss();
}
});
});