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

  • Google

    Google

    18 EYLÜL 2005
  • Google Россия

    Google Ро

    9 Temmuz 2007
  • wafflepwn

    wafflepwn

    14 AĞUSTOS 2008