Özel iletişim kutusunun boyutunu elde etmenin bir yolunu arıyorum. Ben this soru gitti, ama verilen tek cevap oldukça işe yaramıyor, çünkü mDialog.getWindow().getAttributes().height;
deneyin, yalnızca iletişim kutusu için ayarladığım WRAP_CONTENT
özniteliği için bir sabit olan -2 döndürür. Bunun boyutunu nasıl alabilirim. Arka plan görüntüsü için siye bilmek istiyorum.İletişim boyutu nasıl edinilir?
cevap
Aslında Android'de bu iOS gibi çalışmıyor - Eğer View
kendisi boyutunu alamayan, ne yapabildiğini olsa da, bunun KÖK düzeni boyutu için istemektir görünüm.
ör .:
myDialog.this.findViewById(R.id.dialog_root_layout).getHeight());
İletişim kutusu boyutunu üstbilgi olmadan döndürse de, tam olarak ihtiyacım olan şey buydu. – slezadav
@Michal: "AlertDialog" için dialog_root_layout çözümlenemiyor veya bir alan değil. –
@ LuisA.Florit dialog_root_layout öğesini koymak yerine, diyaloğunuzun kimliğini eklemelisiniz. – Michal
Bir deneyin:
mDialog.getWindow().getDecorView().getHeight()
Harika çalışıyor, Michal'in cevabı benim durumumda daha iyi. – slezadav
@KorniltsevAnatoly: Bu benim için çalışmıyor. 0 –
@Override public void onWindowFocusChanged (boolean hasFocus) { super.onWindowFocusChanged (hasFocus); // çağrı burada } –
@Kormilsev Anatoliy doğru cevap vardır ve ben sadece geliştiriyorum.
@Override
public void onWindowFocusChanged (boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
hight = getWindow().getDecorView().getHeight();
}
ve bu olay AlertDialog için nasıl ayarlanır? – user924
this 'alertDialog.setOnShowListener (yeni DialogInterface.OnShowListener()', – user924
çalışacaktır Evet, bu çoğunlukla kullanılan AlertDialogs için bir karardır. – CodeToLife
tam olarak ne iletişim kullanıyorsunuz: Yani iletişim sınıfından miras sınıfta sadece yöntemini geçersiz? –
public class ControlOverlay Dialog'u genişletir, bu nedenle sadece Dialog – slezadav