Это старый вопрос, который уже был принят, но следующее решение может помочь кому-то еще:
Если вы проверите res / values / attrs.xml в исходном коде Android, вы увидите определениесвойства видимости, подобного этому:
<!-- Controls the initial visibility of the view. -->
<attr name="visibility">
<!-- Visible on screen; the default value. -->
<enum name="visible" value="0" />
<!-- Not displayed, but taken into account during layout (space is left for it). -->
<enum name="invisible" value="1" />
<!-- Completely hidden, as if the view had not been added. -->
<enum name="gone" value="2" />
</attr>
Этот атрибут ожидает строковое значение (видимое, невидимое, пропавшее), которое будет преобразовано в (0, 1, 2) соответственно.Таким образом, вы можете объявить целочисленные ресурсы, содержащие эти значения, например:
values / inteers.xml
<integer name="visible_in_portrait">2</integer> <!-- This is GONE -->
values-land / inteers.xml
<integer name="visible_in_landscape">0</integer> <!-- This is VISIBLE -->
, если вы хотите сделать это еще лучше, чтобы перестать каждый раз угадывать эти числовые константы, вы можете сделать это следующим образом:
values / inteers.xml
<!-- These are alias for the constants we'll reference below -->
<integer name="view_visible">0</integer> <!-- This is VISIBLE -->
<integer name="view_invisible">1</integer> <!-- This is INVISIBLE -->
<integer name="view_gone">2</integer> <!-- This is GONE -->
<integer name="visible_in_portrait">@integer/view_gone</integer> <!-- We're referencing the visibility alias we declared above -->
values-land /Integers.xml
<integer name="visible_in_landscape">@integer/view_visible</integer>
Вы можете использовать этот подход или предложенный Keyhan.Выберите тот, который вам больше подходит.