2013-09-02 6 views
0

Dans Android, Tout en utilisant la fenêtre Popupcomportement de la fenêtre Popup Android

Si je setBackgroundDrawable propriété de fenêtre pop-up Puis:

// Back button cannot override 
    // Outside touch working 

Si je n'utilise pas setBackgroundBrawable propriété de fenêtre pop-up Puis:

// Back button can override 
    // Outside touch is not working 

Que dois-je faire si je veux les deux événements en même temps?

Merci d'avance.

+0

pouvez-vous poster votre code? – FoamyGuy

+0

Salut, Voici mon morceau de code if (mBackground == null) \t mWindow.setBackgroundDrawable (nouveau BitmapDrawable (mContext.getResources())); else \t mWindow.setBackgroundDrawable (mBackground); mWindow.setWidth (WindowManager.LayoutParams.MATCH_PARENT); mWindow.setHeight (WindowManager.LayoutParams.WRAP_CONTENT); mWindow.setTouchable (true); mWindow.setFocusable (true); mWindow.setOutsideTouchable (true); mWindow.setContentView (mRootView); mWindow.getContentView(). SetFocusableInTouchMode (true); –

+0

à l'avenir s'il vous plaît modifier votre question lorsque vous souhaitez ajouter du code. Ne le mettez pas dans les engagements. – FoamyGuy

Répondre

0

Essayez ceci:

myPopupWindow.setBackgroundDrawable(new BitmapDrawable()); 
myPopupWindow.setOutsideTouchable(true); 
+0

Salut, Voici mon morceau de code if (mBackground == null) \t mWindow.setBackgroundDrawable (nouveau BitmapDrawable (mContext.getResources())); else \t mWindow.setBackgroundDrawable (mBackground); mWindow.setWidth (WindowManager.LayoutParams.MATCH_PARENT); mWindow.setHeight (WindowManager.LayoutParams.WRAP_CONTENT); mWindow.setTouchable (true); mWindow.setFocusable (true); mWindow.setOutsideTouchable (true); mWindow.setContentView (mRootView); mWindow.getContentView(). SetFocusableInTouchMode (true); –

0

Qu'est-ce que vous essayez de définir comme mContext.getResources() dans le setbackgroundDrawable si votre mbackGround est nul? essayez de le définir comme celui-ci mContext.getResources().getDrawable(R.drawable.main_menu)

+0

Salut, J'ai popupwindow avec interface utilisateur personnalisée et il contient des cases à cocher. Je suis capable d'afficher cette popup. J'ai ma logique d'entreprise ici, quand je suis en appuyant sur le bouton de retour, j'ai besoin de cocher une case est sélectionnée ou non, Si non, je ne veux pas rejeter la fenêtre contextuelle (en bref besoin de remplacer la presse arrière). Ceci est réalisé en n'utilisant pas la propriété setBgDrawable pour faire un popup. Mais avec le surdimensionnement du bouton précédent, je dois rejeter le popup sur le contact extérieur. Le problème est quand je ne règle pas la propriété setBgDrawable (pour surcharger la pression arrière) il tue l'événement tactile et j'ai besoin des deux. –

0

Lorsque vous utilisez PopWindow votre activité n'a pas le focus plus, c'est pourquoi ni le travail onBackPressed ni onTouchEvent, mais si vous définissez Concentrons yourPopupWindow.setFocusable(false); votre activité aura encore attention et vous serez capable d'effectuer le toucher et le dos dessus.

Questions connexes