Android: görünmez ve gitti arasındaki fark?


476

Görünüm görünürlüğü durumu arasındaki invisibleve farkı nedir gone?


26
Bir Görünüm gittiğinde, düzende yer kaplamadığı anlamına gelir. Görünmez olduğunda, gerekli odayı bir düzende alacaktır, ancak görmüyorsunuz.
DroidBender

Yanıtlar:


708

GÖRÜNMEZ:

Bu görüş görünmezdir, ancak yine de yerleşim amacıyla yer kaplar.

GONE:

Bu görünüm görünmezdir ve mizanpaj amacıyla yer kaplamaz.


113
HTML / CSS'ye display:noneve benzeri visibility:hidden:-) gibi görünüyor
anishsane

Veya Wpf
XAML'de

1
Görünmezse, tıklamak da devre dışı bırakılır mı?
Kuldeep Yadav

1
@KuldeepYadav evet hem gitti hem de görünmez olacak.
steve moretz

1
sadece gelecekteki meraklı okuyucular için: Görünmez olsa bile performItemClick'i liste / ızgara görünümlerinde kullanabiliriz.
kiranking

264

Gönderen Belgeler sen söyleyebiliriz

View.GONE Bu görünüm görünmezdir ve mizanpaj için yer kaplamaz.

GÖRÜNÜM Bu görünüm görünmezdir, ancak yine de yerleşim amacıyla yer kaplar.


Fikri bazı resimlerle netleştirelim.

Aşağıdaki gibi üç düğmeniz olduğunu varsayın

resim açıklamasını buraya girin

Şimdi İkinci Düğmenin görünürlüğünü görünmez ( View.INVISIBLE) olarak ayarlarsanız , çıktı

resim açıklamasını buraya girin

Ve İkinci Düğme'nin görünürlüğünü gitti ( View.GONE) olarak ayarladığınızda çıkış

resim açıklamasını buraya girin

Umarım bu şüphelerini giderir.


4
Fikrin temizlenmesi gerekiyor mu? Sadece açıklamadan benim için yeterince açık görünüyor.
John Dvorak

16
@JanDvorak :) Harika! Sorunuz için cevabım yok. Bunun tüm kullanıcılar için çok açık olduğunu düşünüyorsanız, kabul edilen cevabın bir yorum olması ve dokümantasyon sitesi bağlantısı olması gerekir. Doğrumuyum?
Pankaj Kumar

edittext için kullanırsam ne olur. değeri edittext'den almak mümkün mü?
Ashish

32

ListView veya GridView için görünürlük başlangıçta olarak ayarlandığında başka bir fark daha vardır.

GÖRÜNMEZ:

Bağdaştırıcının getView () işlevi çağrıldı

GONE:

Bağdaştırıcının getView () işlevi çağrılmadığından, gereksiz olduğunda görünümlerin yüklenmesini önler


10

GÖRÜNMEZ:
Görünüm çizilmelidir ve zaman alır.

GONE:
Görünümün çizilmesi gerekmez.


8
Görünüm çizilmez, ölçülür ve düzenlenir.
siroksis

@cyroxis belki ondraw yöntemi demektir!
David

7

Doğru ve başarılı yanıtlara, görünürlüğü olan bir görünümü başlatırsanız, görünüm başlatılmamış View.GONEolabilir ve bazı rastgele hatalar alırsınız.

Örneğin, bir mizanpajı şu şekilde başlatırsanız View.GONEve ardından bir animasyon başlatmaya çalışırsanız, deneyimimden animasyonumun rastgele çalışmasını sağladım. Bazen evet bazen hayır.

Bu nedenle, bir görünümü ele almadan (yeniden boyutlandırma, taşıma, her ne olursa olsun), görüntüyü olarak başlatmanız View.VISIBLEveya View.INVISIBLEekranda işlemek (çizmek) ve ardından işlemeniz gerekir.


Evet, haklısın, manzara bazen sadece çalışıyorGONE
Suraj Bahadur

4

programın her derlenmesinde gittiğinizde, bileşen başlatılır, bu da bileşeni mizanpajdan kaldırdığınız anlamına gelir ve bileşeni görünmez hale getirdiğinizde mizanpajda aynı alanı alır, ancak her başlatmanız gerekmez .

Visibility = Gone değerini ayarlarsanız bileşeni başlatmanız gerekir..like

örn. Düğme _mButton = yeni Düğme (bu);

_mButton = (Düğme) findViewByid (R.id.mButton);

Görünürlük = görünmez ile karşılaştırıldığında daha fazla zaman alacaktır.


4
  • View.INVISIBLE -> Görünüm görünmez, ancak düzende biraz yer kaplayacak

  • View.GONE -> Görünüm görünmez ve düzende yer kaplamaz


0

View.GONE = Görünüm gösterilmeyecek ve geri kalan görünümler varlığını dikkate almayacak

View.INVISIBLE = Görünüm gösterilmeyecek, ancak düzende atanan alanı alacak

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.