所以目前我正在我的应用程序中放入一个复活节彩蛋,我希望Button
不可见,但点击时(Rick roll)。到目前为止,当我说:
Button.setVisibility(view.VISIBLE);
Button.setBackgroundColor(Color.TRANSPARENT);
然后我的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();
}
});
答案 0 :(得分:14)
在您的布局中,让您的按钮具有特定宽度,例如android:layout_width="40dp"
。
如果您的宽度设置为wrap_content
且背景透明且没有文字,则Android会将该视图测量为宽度为0dp。你永远无法点击它。
答案 1 :(得分:5)
尝试在按钮“”...
中制作文字myButton.setText(" ");
答案 2 :(得分:4)
您可以将任何视图(例如LinearLayout)创建为可点击。创建一个与按钮具有相同尺寸的LinearLayout,并将其设置为onClick侦听器以处理事件。由于它本身不可见,它应该具有相同的效果。
答案 3 :(得分:4)
简单回答就像这样将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" />
它将是隐形的并且onclick将起作用。
答案 4 :(得分:3)
确保按钮的宽度和高度未设置为wrap_content
,因为如果文本为“”,则会导致按钮非常小。如果这不起作用,您也可以尝试用onTouch()替换onClick():
button1.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
// TODO Auto-generated method stub
return false;
}
});
答案 5 :(得分:1)
不要使用按钮并覆盖Activity的dispatchTouchEvent并以这种方式处理它。
答案 6 :(得分:1)
您可以向OnClickListener
添加View
,因此请尝试使用透明图片创建ImageView
并将您的监听器附加到该{。}}。
答案 7 :(得分:1)
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b = (Button) findViewById(R.id.button1);
final CheckBox cb = (CheckBox) findViewById(R.id.checkBox1);
b.setBackgroundColor(Color.TRANSPARENT);
b.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
cb.setChecked(true);
这个代码按钮是不可见的,但它起作用;))
答案 8 :(得分:0)
您也可以禁用该按钮(它不会被点击)。
在java代码中:
btn.setClickable(false);
在.xml布局中:
android:clickable="false"
答案 9 :(得分:-1)
这适合我:
btn.setClickable(false)
GONE
知名度。
{li> btn.setClickable(true)
VISIBLE
知名度。