Android弹出窗口被解雇

Android弹出窗口被解雇

当我单击列表活动中的项目时,我会显示一个弹出窗口。问题是后退键不会关闭它。我尝试在列表活动中捕获后退键但它没有注册它...然后我尝试将onkeylistener注册到我正在传递到弹出窗口的视图中。像这样:


pop.setOnKeyListener(new View.OnKeyListener() {


        @Override

        public boolean onKey(View v, int keyCode, KeyEvent event) {

            // TODO Auto-generated method stub

            boolean res=false;

            if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {

                // do something on back.

                Log.e("keydown","back");

                if (pw.isShowing()) {

                    Log.e("keydown","pw showing");

                    pw.dismiss();

                    res = true;

                }

            } else {

                res = false;

            }

            return res;

        }

    });

传递给像这样的弹出窗口:


pw = new PopupWindow(

       pop, 

       240, 

       70, 

       true);

但那个听众既不会开火也不会开火。你能帮助我吗?我没有想法:)


MMTTMM
浏览 400回答 3
3回答

绝地无双

按照以下方式工作正常:PopupWindow pw;LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);View layout = inflater.inflate(R.layout.weight_popup, (ViewGroup)findViewById(R.id.linlay_weight_popup));pw = new PopupWindow(layout,LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT, true);pw.setBackgroundDrawable(new BitmapDrawable());pw.setOutsideTouchable(true);pw.showAsDropDown(btnSelectWeight);

慕桂英4014372

对于新项目,最好使用popupWindow.setBackgroundDrawable(new ColorDrawable());代替popupWindow.setBackgroundDrawable(new BitmapDrawable());不推荐使用BitmapDrawable。此外,在这种情况下,它比ShapeDrawable更好。我注意到当PopupWindow是一个带圆角的矩形时,ShapeDrawable用黑色填充角落。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android