Могу ли я скрыть кнопку с изображением на макете (размеры и фон) до тех пор, пока вызов не станет видимым? - PullRequest
4 голосов
/ 22 ноября 2010

У меня есть кнопка скрытого изображения в одном из моих макетов xmls, с фоном, установленным для рисованного изображения.Я установил видимость невидимым, так как хочу, чтобы изображение отображалось время от времени.Проблема в том, что даже если нарисованный объект не отображается, кнопка изображения все равно занимает место. Есть ли способ скрыть фоновое изображение и сделать его размеры 0, пока я не вызову его для отображения в моем основном классе?

Спасибо!

Редактировать: Итак, как в моем XML, как бы я это написал?

<ImageButton android:id="@+id/myimage" android:visibility="invisible" 
android:layout_width="wrap_content" android:layout_height="wrap_content" 
android:layout_gravity="center" android:background="@drawable/my_image"></ImageButton>

Я хочу, чтобы изображение всегда исчезало, если не возникает определенное условиеЗатем я хочу, чтобы изображение было видно при этом условии.Таким образом, в моем xml мне нужно будет установить GONE, но в моем условном выражении я скажу что-то вроде:

myimage.setVisibility (SHOW);?

Ответы [ 4 ]

14 голосов
/ 22 ноября 2010

Попробуйте установить видимость на GONE

9 голосов
/ 22 ноября 2010

Не устанавливайте ширину / высоту на ноль, это ужасно.Вид всегда будет занимать пространство, если вы не измените настройку видимости.Это код, который вы хотите:

myImageButton.setVisibility (View.GONE);

View.GONE - невидимый, не занимает места View.INVISIBLE - невидимый, но по-прежнему занимает место View.VISIBLE - используйте это, чтобы вернуть

6 голосов
/ 22 ноября 2010

Все представления, включая ImageButton, наследуются от android.view.View, поэтому все они имеют атрибут видимости, который можно установить.Вместо того, чтобы устанавливать видимость нарисованного ресурса, установите его на ImageButton.

1 голос
/ 30 октября 2016

Установить свойство видимости Imageview, как это в java

imgView.setVisibility(View.VISIBLE);
imgView.setVisibility(View.INVISIBLE);
imgView.setVisibility(View.GONE);

Или как это в XML

android:visibility="visible"
android:visibility="gone"
android:visibility="invisible"

Результат для каждого будет выглядеть так

enter image description here

...