2015-07-08 3 views
0

Когда я открываю всплывающее окно, я не могу отменить его, потому что я использовал popupwindow.setfocusable (true) .if Я не использую focsable, я не могу открыть элемент сетки.Как скрыть всплывающее окно в то время как pw.setfocusable (true)?

LayoutInflater layoutInflater = (LayoutInflater) getBaseContext() 
      .getSystemService(LAYOUT_INFLATER_SERVICE); 
    popupView = layoutInflater.inflate(R.layout.gridview_popup, null); 

    gridViewPopup = (GridView) popupView.findViewById(R.id.gridViewPopup); 

    mCategoryAdapter = new CategoryAdapter(MainActivity.this); 
    gridViewPopup.setAdapter(mCategoryAdapter); 
    popupWindow = new PopupWindow(popupView, LayoutParams.MATCH_PARENT, 
      LayoutParams.WRAP_CONTENT); 
    popupWindow.setFocusable(true); 

здесь, я использовал набор focasable (истина)

с помощью этого я не могу dissmiss всплывающее окно на той же кнопке

if (popupShowing == false) { 
      popupWindow.showAsDropDown(findViewById(R.id.category_list), 0, 
        0); 
      popupShowing = true; 
     } else { 
      popupWindow.dismiss(); 

      popupShowing = false; 

ответ

0

вы должны установить popupWindow.setOutsideTouchable (истина); это сработало для меня.

+0

Я пробовал это..и тоже не работает ... – user2902835

+0

если я использую popupWindow.setOutsideTouchable (true); , событие события сетки не обнаружено. – user2902835