国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

android popuwindow點擊外部窗口不消失的實例

2019-12-12 03:05:16
字體:
來源:轉載
供稿:網友

網上大多數(shù)都是說如何監(jiān)聽點擊外部消失,但我遇到的問題是點擊外面不讓其消失,如下是我的解決方案,關鍵是:popupMenu.setBackgroundDrawable(null);popupMenu.setFocusable(false);

popupMenu = new PopupWindow(view, keylinearlayout.getWidth(), LayoutParams.WRAP_CONTENT); ColorDrawable cd = new ColorDrawable(R.color.white); //popupMenu.setBackgroundDrawable(cd); popupMenu.setBackgroundDrawable(null); popupMenu.setAnimationStyle(R.style.AnimBottom); popupMenu.update(); popupMenu.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED); popupMenu.setTouchable(true); // 設置popupwindow可點擊 popupMenu.setOutsideTouchable(false); // 設置popupwindow外部可點擊 popupMenu.setFocusable(false); // 獲取焦點 popupMenu.setTouchInterceptor(new View.OnTouchListener() {  @Override  public boolean onTouch(View v, MotionEvent event) {  // 如果點擊了popupwindow的外部,popupwindow也會消失  // 這里如果返回true的話,touch事件將被攔截  // 攔截后 PopupWindow的onTouchEvent不被調用,這樣點擊外部區(qū)域無法dismiss  if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {   //popupMenu.dismiss();   StationEventCaptain.getInstance().fireEventDataChange(    new StationEventData(IStationEventName.HEDGE_KEYBORAD_DIMISS, true));   return true;  }  return false;  } }); //初始化鍵盤上的數(shù)字 initALLDig(view); } @Override public PopupWindow createPupupWindow() { return popupMenu; } @Override public void showPopupMenu() { if (popupMenu != null && popupMenu.isShowing()) {  popupMenu.dismiss();  StationEventCaptain.getInstance().fireEventDataChange(   new StationEventData(IStationEventName.HEDGE_KEYBORAD_DIMISS, true)); } else {  //popupMenu.showAsDropDown(sourceEditView);  int pianyi = dpToPx(activity, 8);  if (keyboardType == IPopupMenu.MENU_TYPE_HEDGE_Left) {  popupMenu.showAtLocation(keylinearlayout, Gravity.BOTTOM | Gravity.LEFT, pianyi, 0); //設置layout在PopupWindow中顯示的位置   } else if (keyboardType == IPopupMenu.MENU_TYPE_HEDGE_RIGHT) {  popupMenu.showAtLocation(keylinearlayout, Gravity.BOTTOM | Gravity.RIGHT, pianyi, 0); //設置layout在PopupWindow中顯示的位置   } else {  popupMenu.showAtLocation(keylinearlayout, Gravity.BOTTOM | Gravity.LEFT, 0, 0); //設置layout在PopupWindow中顯示的位置   }  // popupMenu.showAsDropDown(sourceView,  // Math.round(sourceView.getX()),  // (int) (sourceView.getY())); } } /** * 將dp轉成像素的 *  * @param context * @param dp * @return */ static int dpToPx(final Context context, final float dp) { return (int) (dp * context.getResources().getDisplayMetrics().density); } @Override public void destroyPopupMenu() { popupMenu.dismiss(); StationEventCaptain.getInstance()  .fireEventDataChange(new StationEventData(IStationEventName.HEDGE_KEYBORAD_DIMISS, true)); }

成功解決,有問題可以討論。

以上這篇android popuwindow點擊外部窗口不消失的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 武胜县| 马公市| 茂名市| 岑巩县| 通山县| 瑞昌市| 博客| 万山特区| 阿拉善盟| 长春市| 乐清市| 建宁县| 文成县| 玛沁县| 偏关县| 旺苍县| 萝北县| 昔阳县| 康马县| 济宁市| 扶绥县| 普洱| 海安县| 新乡县| 武威市| 两当县| 新宾| 西乡县| 贡觉县| 柘城县| 宁海县| 马龙县| 定兴县| 武威市| 鄂伦春自治旗| 海伦市| 凤城市| 宁德市| 休宁县| 绩溪县| 绩溪县|