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

首頁 > 系統 > Android > 正文

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

2019-10-23 18:31:19
字體:
來源:轉載
供稿:網友

網上大多數都是說如何監聽點擊外部消失,但我遇到的問題是點擊外面不讓其消失,如下是我的解決方案,關鍵是: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不被調用,這樣點擊外部區域無法dismiss  if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {   //popupMenu.dismiss();   StationEventCaptain.getInstance().fireEventDataChange(    new StationEventData(IStationEventName.HEDGE_KEYBORAD_DIMISS, true));   return true;  }  return false;  } }); //初始化鍵盤上的數字 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點擊外部窗口不消失的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乐至县| 扶绥县| 永登县| 文登市| 龙州县| 漳州市| 静宁县| 额尔古纳市| 淮南市| 呼玛县| 广宗县| 罗定市| 吉水县| 锡林郭勒盟| 军事| 三门峡市| 巴彦淖尔市| 潞西市| 突泉县| 含山县| 二连浩特市| 浦北县| 景洪市| 株洲市| 蒙山县| 麦盖提县| 资溪县| 丰宁| 荔波县| 奎屯市| 清丰县| 永德县| 吴忠市| 安陆市| 巴彦淖尔市| 濮阳县| 湛江市| 兰考县| 廉江市| 巴彦淖尔市| 正定县|