Могу ли я использовать .setVisibility (View.GONE) или я должен просто удалить само представление? - PullRequest
2 голосов
/ 09 января 2012

У меня есть макет и несколько динамически добавленных кнопок.Иногда эти кнопки должны просто исчезать, поэтому я решил использовать:

myButton.setVisibility(View.GONE)

Это хороший способ, если бы у меня было много кнопок, например 20-30 штук?или это лучший способ полностью удалить кнопки из их макета, а затем добавить их при необходимости, или я должен просто использовать модификатор видимости?Что лучше, минусы и плюсы ..!?

Ответы [ 4 ]

1 голос
/ 09 января 2012

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

1 голос
/ 09 января 2012

20-30 кнопок звучит довольно много. В общем, нет ничего плохого в использовании параметра видимости, но если вы думаете о том, чтобы иметь такое количество представлений, вам, вероятно, следует подумать о том, чтобы просто иметь пару и использовать их для разных целей.

1 голос
/ 09 января 2012

Я думаю, что лучшим и распространенным способом является использование .setVisibility (View.GONE) Возможно, лучший способ для вас - установить значение ALL как пропавшее по умолчанию (определите его в макете XML) и включить по требованию.

Например, я думаю, что ListView очень умен, и предпочитаю, чтобы вы пометили представление как GONE, а не удалили его.

И я думаю, что Android в целом тоже умный, так что он поймет, что вам не нужен вид, установленный как пропавший:)

UPDATE:

возможно, лучший способ для вас - добавить эти кнопки из кода, чтобы вы создали много кнопок по мере необходимости:)

1 голос
/ 09 января 2012

Если у вас действительно есть 20-30 кнопок, для которых изменяется видимость, я думаю, вы должны взять минимальное количество (я думаю, ниже 10) кнопок и изменить их свойства вместо того, чтобы создавать или изменять их видимость каждый раз.

...