Как сделать кнопку невидимой сразу после нажатия?

Я хотел бы знать, как сделать кнопку видимой, но при нажатии я хочу, чтобы она была невидимой, чтобы она вообще не отображалась.


person Wahid    schedule 21.09.2011    source источник


Ответы (5)


button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Button button = (Button) v;
            button.setVisibility(View.INVISIBLE);
        }
    });

Это делает его невидимым, но по-прежнему занимает место в макете, переключая последнюю строку для:

                button.setVisibility(View.GONE);

сделает его «сложенным», и он будет не только невидимым, но и не будет занимать место в макете.

person richardwiden    schedule 21.09.2011
comment
Большое спасибо! Мне потребовались часы, чтобы найти ответ. Я прошел через ад, чтобы найти код..! - person Wahid; 21.09.2011
comment
Поскольку вы новичок на сайте, я вам это скажу. Если вы найдете ответ, который решает вашу проблему, отметьте его как принятый. Чтобы другие знали, какой ответ помог вам. Это зеленый флажок под виджетом голосования слева от ответа. - person richardwiden; 21.09.2011
comment
извините, я думал, что этот пост полезен для вас? был зеленый маркер. (Можете написать мне на [email protected]) Вы похожи на умного парня, мне нужна небольшая помощь. - person Wahid; 21.09.2011
comment
Весь смысл этого сайта в том, чтобы не спрашивать/отвечать на одни и те же вещи снова и снова. Если у вас есть вопрос: Ищите здесь. Если вы не можете найти похожий вопрос: задайте его здесь. - person richardwiden; 21.09.2011

Это довольно просто. setVisibility(View.Invisible) внутри OnClickListener() кнопки

person romy_ngo    schedule 21.09.2011

поместите эту строку в свой Button's on click method.

Button.setVisibility(View.INVISIBLE);

РЕДАКТИРОВАТЬ: если вы полностью отключите вид кнопки, а затем попробуете

Button.setVisibility(View.GONE);
person user370305    schedule 21.09.2011

Просто используйте это в своем OnClickListener:

button.setVisibility(View.INVISIBLE);

Если вы хотите, чтобы он был полностью невидимым и занимал пространство макета, используйте

button.setVisibility(View.GONE);
person David Olsson    schedule 21.09.2011

вы можете сделать так.

yourbutton.setVisibility(Button.GONE);

Это удалит вашу кнопку из вашего макета, поэтому в этом пространстве будет использоваться другой элемент управления.

Если вы хотите просто скрыть и сохранить размер кнопки с другим макетом, вы можете использовать

yourbutton.setVisibility(Button.INVISIBLE);
person Pratik    schedule 21.09.2011