Как удалить кнопку или сделать ее невидимой в Android?

Ответы:

364

Установите видимость кнопки на GONE (кнопка будет полностью «удалена» - пространство кнопок будет доступно для других виджетов) или INVISIBLE (кнопка станет «прозрачной» - ее пространство не будет доступно для других виджетов):

View b = findViewById(R.id.button);
b.setVisibility(View.GONE);

или в XML:

<Button ... android:visibility="gone"/>
Константин Буров
источник
когда вы устанавливаете его, он все еще считается ребенком? Если бы я сделал что-то вроде подсчета детей или получить ребенка по индексу, что вообще?
Lpc_dark
1
Я думаю, да, это все еще считается ребенком.
Константин Буров
11
И показать это так: b.setVisibility (View.VISIBLE);
Зар Э Ахмер
37

Сначала сделайте кнопку невидимой в файле XML. Затем установите кнопку, видимую в коде Java, если это необходимо.

Button resetButton=(Button)findViewById(R.id.my_button_del);
resetButton.setVisibility(View.VISIBLE); //To set visible

Xml:

<Button
android:text="Delete"
android:id="@+id/my_button_del"
android:layout_width="72dp" 
android:layout_height="40dp"
android:visibility="invisible"/>
Томас VJ
источник
Я хочу сделать кнопку невидимой, но она должна быть доступной в действии, очень похоже на сверхсекретную кнопку. Он не должен отображаться в активности, но кнопка должна работать
Самрат Мазумдар
1
Используйте "buttonCleanup.setVisibility (View.VISIBLE);" вместо нуля.
Винсент
17

Чтобы удалить кнопку в коде Java :

Button btn=(Button)findViewById(R.id.btn);
btn.setVisibility(View.GONE);

Для прозрачной кнопки в коде Java :

Button btn=(Button)findViewById(R.id.btn);
btn.setVisibility(View.INVISIBLE);

Чтобы удалить кнопку в XML-файле :

<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"/>

Для прозрачной кнопки в файле XML :

<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"/>
ghader
источник
12

Этот вид виден.

button.setVisibility(View.VISIBLE);

Этот вид невидим, и он не занимает места для макета.

button.setVisibility(View.GONE); 

Но если вы просто хотите сделать его невидимым:

button.setVisibility(View.INVISIBLE);
MSIslam
источник
4

используйте setVisibility в кнопке или imageViwe или .....
Чтобы удалить кнопку в коде Java:

Button btn=(Button)findViewById(R.id.btn);
btn.setVisibility(Button.GONE);

Для прозрачной кнопки в коде Java

Button btn=(Button)findViewById(R.id.btn);
btn.setVisibility(Button.INVISIBLE);


Вы должны сделать кнопку XML-кода, как показано ниже:

<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"/>


скрытый:
видимость: ушел
показать:
видимость: невидимый
видимость: видимый

Саяд
источник
3
button.setVisibility(button.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE);

Делает это видимым, если невидимым, и невидимым, если видимым

ORY
источник
1

Элементы управления представлением (TextView, EditText, Button, Image и т. Д.) Имеют свойство видимости. Это может быть установлено в одно из трех значений:

Видимый - Отображается

android:visibility="visible"

Невидимый - скрытый, но зарезервированный

android:visibility="invisible"

Унесенные - полностью скрыты

android:visibility="gone"

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

Button button1 = (TextView)findViewById(R.id.button1);
button1.setVisibility(View.VISIBILE);
Маянк Бхатнагар
источник
0

Чтобы полностью удалить кнопку из родительского макета:

((ViewGroup)button.getParent()).removeView(button);
Даниил
источник
0
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/activity_register_header"
    android:minHeight="50dp"
    android:orientation="vertical"
    android:visibility="gone" />

Попробуйте этот код

Видимость отлично работает в этом коде

Гаутам Субраманиам
источник
0

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

<Button ... android:visibility="gone"/>

View.INVISIBLE:

Кнопка станет прозрачной. Но это занимает место.

View.GONE

Кнопка будет полностью удалена из макета, и мы можем добавить другой виджет вместо удаленной кнопки.

Кундан Камаль
источник
0

Для доступа к элементам из другого класса вы можете просто использовать

findViewById(R.id.**nameOfYourelementID**).setVisibility(View.GONE); 
Мартинас Станис
источник
-1
Button btn=(Button)findViewById(R.id.btn);
btn.setVisibility(8);
user2922138
источник
-2

Попробуйте этот код:

button.setVisibility(View.INVISIBLE);
Арди
источник
9
вы действительно не должны использовать жестко закодированные значения в этом методе - просто используйте константы - View.GONE, View.VISIBLE или View.INVISIBLE
bkurzius