Bir Görünümü programlı olarak nasıl gizleyebilirim?


125

Başvurumda LinearLayoutüst üste 2 tane var . Bir menü seçeneği aracılığıyla, alttaki olanı yok edebilmek ve en üstteki açılanın kaybolanların üzerine düşmesini istiyorum LinearLayout.

Sorun şu ki, bunu Java'da nasıl yapacağım konusunda hiçbir fikrim yok.

Animasyonlu olması gerekmez, Layoutiçinde başka bir aktivitenin (menü) dönüşünü gizlemek istiyorum OnActivityResult. Menü kontrol ettiğim a'yı activityayarlar ve değerine göre altını gizlemem veya göstermem gerekip gerekmediğini belirlerim :booleanOnActivityResultLayout

// Only change value if it is different from what it was.
if(mUseVolumeButtonAsPTT != resultData.getBoolean("UseVolumeButtonAsPTT")){
    mUseVolumeButtonAsPTT = resultData.getBoolean("UseVolumeButtonAsPTT");
    if(!mUseVolumeButtonAsPTT){
        // Hide lower LinearLayout.
    } else {
        // Show lower LinearLayout.
    }
}

Bunu nasıl yapmam gerektiği konusunda bana ipucu veya bağlantı veren var mı?

Yanıtlar:


324

Arayabilirsin view.setVisibility(View.GONE)Yerleşimden çıkarmak isterseniz .

Veya view.setVisibility(View.INVISIBLE) da sadece saklamak istiyorsan.

Gönderen Android Dokümanlar :

GÖRÜNMEZ

Bu görünüm görünmez, ancak yine de yerleşim amacıyla yer kaplar. Kullanın setVisibility(int)ve android:visibility.

GİTTİ

Bu görünüm görünmezdir ve yerleşim amacıyla herhangi bir yer kaplamaz. Kullanın setVisibility(int)ve android:visibility.


16
View.setVisibility (View.INVISIBLE) olarak ayarlanmış olsa bile kullanıcı onunla etkileşimde bulunabilir mi?
WhiskThimble

Örneğin, bir etkinlik GONE olarak ayarlanmışsa görünümde değişiklik yapabilir mi? Görünmez olarak ayarlanmışsa yapabileceğinizi tahmin ediyorum.
moatist

1
RelativeLayout'ta ne olacak? Görünüm pozisyonları birbirine bağlıdır. Bir manzara gittikten sonra ne olacağını merak ediyorum.
Zin Win Htet

@ErPragatiSingh lütfen bağlantıyı her zaman kopyalayıp yapıştırdığınız yere koyun ve cevabı OP'nin söylemek istediği gibi tutun. :)
Sufian

@Sufian teşekkürler, hepsi android geliştirici resmi sitesinden.
Prags

19

Bunu dene:

linearLayout.setVisibility(View.GONE);

0

Kotlin Çözümü

view.isVisible = true
view.isInvisible = true
view.isGone = true

// For these to work, you need to use androidx and import:
import androidx.core.view.isVisible // or isInvisible/isGone

Kotlin Uzantı Çözümü

Daha tutarlı uzunlukta olmalarını, boş değer atanabilir görünümler için çalışmalarını ve yanlış boole yazma olasılığını düşürmelerini istiyorsanız, şu özel uzantıları kullanmayı deneyin:

// Example
view.hide()

fun View?.show() {
    if (this == null) return
    if (!isVisible) isVisible = true
}

fun View?.hide() {
    if (this == null) return
    if (!isInvisible) isInvisible = true
}

fun View?.gone() {
    if (this == null) return
    if (!isGone) isGone = true
}
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.