如何以编程方式隐藏按钮?

Ris*_*shi 139 android

我有一个RelativeLayout包含两个按钮.它们相互重叠.

<?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>
Run Code Online (Sandbox Code Playgroud)

我想以编程方式一次只显示一个按钮,同时调用其click事件.

我尝试过:

playButton.setVisibility(1);
Run Code Online (Sandbox Code Playgroud)

但它不起作用.以下是我想要做的一个例子.

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

    }
});
Run Code Online (Sandbox Code Playgroud)

Sun*_*hoo 292

您可以使用以下代码:

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);
    }
});
Run Code Online (Sandbox Code Playgroud)

  • View.GONE使项目不占用任何布局空间.View.INVISIBLE为项目保留空间.当您切换可见性时,这会更改视图的布局. (4认同)
  • 谢谢sunil :)你能告诉View.VISIBLe和1之间的区别吗(它只是枚举)? (2认同)
  • 为什么将可见性设置为 1?这不是任何常数值。 (2认同)

Bal*_*i.K 72

试试下面的代码 -

playButton.setVisibility(View.INVISIBLE);
Run Code Online (Sandbox Code Playgroud)

要么 -

playButton.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)

再次展示 -

playButton.setVisibility(View.VISIBLE);
Run Code Online (Sandbox Code Playgroud)

  • 使用View.GONE而不是1的+1 (5认同)

jun*_*dev 10

在科特林

myButton.visibility = View.GONE


Nik*_*hil 8

请在下面使用

View.GONE and View.VISIBLE
Run Code Online (Sandbox Code Playgroud)


Ale*_*aos 8

Hidde:

BUTTON.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)

节目:

BUTTON.setVisibility(View.VISIBLE);
Run Code Online (Sandbox Code Playgroud)


小智 5

public void OnClick(View.v)
Button b1 = (Button) findViewById(R.id.playButton);
b1.setVisiblity(View.INVISIBLE);
Run Code Online (Sandbox Code Playgroud)