Bir düğmeyi programlı olarak nasıl gizleyebilirim?


152

RelativeLayoutİki düğme içeren bir var . Hangi üst üste bindirilir.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFFFFF">


<Button android:text="Play"  
    android:id="@+id/play"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom = "true">
</Button>

<Button android:text="Stop "
    android:id="@+id/stop" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:layout_alignParentBottom = "true">
</Button>


</RelativeLayout>

Programlı olarak, click olayı çağrıldığında her seferinde yalnızca bir düğme göstermek istiyorum.

Ben denedim:

playButton.setVisibility(1);

ama işe yaramadı. Aşağıda yapmaya çalıştığım bir örnek var.

playButton = (Button) findViewById(R.id.play);
playButton.setVisibility(1);
playButton.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        //when play is clicked show stop button and hide play button

    }
});

Yanıtlar:


308

Aşağıdaki kodu kullanabilirsiniz:

playButton = (Button) findViewById(R.id.play);
playButton.setVisibility(View.VISIBLE);
playButton.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        //when play is clicked show stop button and hide play button
        playButton.setVisibility(View.GONE);
        stopButton.setVisibility(View.VISIBLE);
    }
});

2
Teşekkürler sunil :) Lütfen View.VISIBLe ve 1 (sadece numaralandırma mı) arasındaki farkı söyleyebilir misiniz?
Vamsi Krishna B

1
Görünürlük neden 1'e ayarlandı? Bu sabit değerlerin hiçbiri değildir.
pqsk

4
View.GONE, öğenin herhangi bir düzen alanı kaplamamasını sağlar. View.INVISIBLE, öğe için yer ayırır. Bu, görünürlüğü değiştirdiğinizde görünüm düzenini değiştirir.
gb96

77

Aşağıdaki kodu deneyin -

playButton.setVisibility(View.INVISIBLE);

veya -

playButton.setVisibility(View.GONE);

ile tekrar göster -

playButton.setVisibility(View.VISIBLE);

8

Lütfen aşağıda kullanın

View.GONE and View.VISIBLE

8

hidde:

BUTTON.setVisibility(View.GONE);

Göstermek:

BUTTON.setVisibility(View.VISIBLE);

5
public void OnClick(View.v)
Button b1 = (Button) findViewById(R.id.playButton);
b1.setVisiblity(View.INVISIBLE);


4

Ben sadece bir düğme metin değiştirmek ve talep üzerine düğmedeki davranış kullanmanızı öneririz. Üst üste binen iki düğmeyi kullanmaktan daha kolay ve temiz.

@Override
public void onClick(View v) {
    String curText = ((TextView)v).getText();                 

    if(curText.equals("Play")){
        ((TextView)v).setText("Stop");
    }

    if(curText.equals("Stop")){
        ((TextView)v).setText("Play");
    }
 }

senin fikrin gibi onun aslında ne yaptığımı iphone birden fazla şey yapmak için tek bir düğme arasında geçiş yapmak.Ama ben android için yeni, bana bunu nasıl bir örnek beni işaret edebilir ..
Rishi

4
        Button button = (Button) findViewById(R.id.myButton);
        //set to visible
        button.setVisibility(View.VISIBLE);
        //set to invisble      
        button.setVisibility(View.INVISIBLE);
       //or
        button.setVisibility(View.GONE);


2

Lütfen bunu deneyin: playButton = (Button) findViewById(R.id.play); playButton.setVisibility(View.INVISIBLE);Sanırım bu işe yarayacak.


1

"Xamarin Android" için:

FindViewById<Button>(Resource.Id.Button1).Visibility = ViewStates.Gone;

1

Kotlin kodu çok daha basit:

if(isVisable) {
    clearButton.visibility = View.INVISIBLE
}
else {
    clearButton.visibility = View.VISIBLE
}
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.