SORU
25 HAZİRAN 2010, Cuma


Pencere işten çıkarma Android popup

Bir açılır pencere listesi benim aktivitede bir öğeyi tıklatın görüntüleniyor. Sorun arka anahtarı kapatın olmamasıdır. Ama kayıt yok geri tuşuna alıcı listesi benim etkinlik olarak çalıştım. daha sonra açılan pencereye geçiyorum görünümü için bir onkeylistener kayıt denedim. Bu gibi:

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;
        }
    });

böyle bir pop-up geçirilir

pw = new PopupWindow(
       pop, 
       240, 
       70, 
       true);

Ama dinleyici de ateş etmiyor. Bana yardım EDEBİLİR MİSİN? Hiç bi fikrim yok :)

CEVAP
26 HAZİRAN 2010, CUMARTESİ


Bu açılan pencerede arka plan=! olmadıkça onTouch veya onKey olaylarına tepki vermez çünkü. null. Bu konuda yardımcı olmak Check out some code I wrote. Temel durumda PopupWindow#setBackgroundDrawable(new BitmapDrawable()) beklediğiniz gibi davranmaya zorlamak için arama yapabilirsiniz. Kendi onKey dinleyiciniz ihtiyacınız olmayacak. Ayrıca eğer kullanıcı pencere sınırları dışında tıklattığında gitmek istiyorsanız PopupWindow#setOutsideTouchable(true) aramak gerekebilir.

Genişletilmiş ezoterik cevap:

Arka plan boş olamaz nedeni PopupWindow#preparePopup neler. Eğer background != null algılarsa PopupViewContainer bir örnek oluşturur ve o setBackgroundDrawable aramalar ve içerik görünüm verir. PopupViewContainer temelde dokunma olayları ve pencereyi kapatmak için KeyEvent.KEYCODE_BACK olayı dinleyen FrameLayout. == Null arka plan, herhangi bir işe yaramıyor ve sadece içerik görüntülemek kullanır. Yapabilirsiniz, PopupWindow o kolu bağlı olarak bir alternatif olarak, kök ViewGroup istediğiniz şekilde davranmaya uzatın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CodingMadeEasy

    CodingMadeEa

    25 EYLÜL 2010
  • ELPRESADOR

    ELPRESADOR

    21 HAZİRAN 2008
  • FusioNGamiing

    FusioNGamiin

    10 Temmuz 2007