设置android按钮不可见,但仍然附加onClick Listener

cj1*_*098 8 android invisible android-button

所以目前我正在我的应用程序中放入一个复活节彩蛋,我希望它Button是隐形的,但是当点击时(Rick roll).到目前为止,当我说:

Button.setVisibility(view.VISIBLE);
Button.setBackgroundColor(Color.TRANSPARENT);
Run Code Online (Sandbox Code Playgroud)

然后是我的onClickListener.唯一的问题是我必须有文本Button才可以点击它.当我拿出文本并使其完全不可见时,onClickListener从来没有因某种原因被调用?

这是我的 OnClickListener

wonderWhatThisDoes.setOnClickListener(new Button.OnClickListener()
{
    @Override
    public void onClick(View v) {
        mMediaPlayer = MediaPlayer.create(About.this, R.raw.surprise);
        mMediaPlayer.start();
        Context context = getApplicationContext();
        CharSequence text = "Congrats on finding our easter egg! Enjoy... :]";
        Toast toast = Toast.makeText(context, text, Toast.LENGTH_LONG);
        toast.show();
    }
});
Run Code Online (Sandbox Code Playgroud)

Ste*_*ice 14

在您的布局中,让您的按钮具有特定的宽度,如android:layout_width="40dp".

如果您的宽度设置为wrap_content透明背景而没有文本,则Android会将该视图测量为宽度为0dp.你永远无法点击它.


Ada*_*orm 5

尝试在按钮""中制作文字......

myButton.setText("    ");
Run Code Online (Sandbox Code Playgroud)


小智 5

这样,简单的答案就是将alpha设置为0。

 <Button
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:alpha="0"
                android:clickable="true"
                android:onClick="getAllImages"
                android:visibility="visible" />
Run Code Online (Sandbox Code Playgroud)

它将是不可见的,并且onclick将起作用。