android中使得popupwindow消失

當我們已經彈出popupwindow後,想讓它單擊窗體或者窗體外消失,或者按手機的返回鍵讓其消失。

1、單擊窗體view消失

view.setOnClickListener(new OnClickListener(){

    @Override

    public void onClick(View v) {

                  Log.i(TAG,view clicked");

    }

   pop.dismiss();

});

view是窗體中的一個控件,單擊view,用dismiss可以將popupwindow消失掉!


2、單擊窗體外消失

                   / / 創建PopupWindow對象  

        LayoutInflater inflater = LayoutInflater.from(this);  

        View view = inflater.inflate(R.layout.popmenu_location, null); // 引入窗口配置文件   

        pop = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, false);  

        ColorDrawable cd = new ColorDrawable(-0000);

        pop.setBackgroundDrawable(cd);//設置窗體的背景,這樣窗體外單擊觸摸纔會消失,但這不會影響xml文件中配置好的背景

        pop.setOutsideTouchable(true);//窗體外單擊觸摸消失

             pop.setFocusable(true);       //窗體獲得焦點,否則無法點擊  

 紅色字體的不可少,因爲android中認爲有背景的,單擊外部纔會消失。

3、按手機的返回鍵讓其消失

@Override//按手機的返回鍵,窗體消失
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK && popisshow) {
pop.dismiss();
}
return super.onKeyDown(keyCode, event);
}

以上這些來自於網友lee0oo0博客的啓發!希望對你們有幫助!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章