2013-09-29 4 views
0

В моем приложении, портрет будет иметь Button, где ландшафт будет НЕ есть Button, поэтому я использую <include> и сделал это:Android макет не включают в себя макет

макет/activity_main.xml

... 
<include layout="@layout/my_button" /> 
... 

значения/layout.xml

... 
<item name="my_button" type="layout">@layout/my_button_layout</item> 
... 

значения-земля/layout.xml

.... 
<item name="my_button" type="layout">@layout/empty_layout</item> 

макет/my_button_layout.xml

... 
<Button...... <!-- my button XML --> 
... 

макет/empty_layout.xml

<View xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:visibility="gone" /> 

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

Я попытался сделать:

<item name="my_button" type="layout">@null</item> 

, но это было бы бросить ResourceNotFound Exception

Есть ли способ обойти это?

(Да, я знаю, что могу сделать это программно, но тогда теряется смысл системы компоновки Андроида)

+0

Поместите два разных макета с тем же именем в папках макета-порта и макета в папке res. –

+0

I.tried, что раньше, в основном мне придется скопировать весь макет в каталог макета-порта и удалить этот небольшой раздел XML моей Button. Это не совсем будущее доказательство ... – tom91136

+0

Затем введите логическое значение в ваши значения - порт и папку значений. –

ответ

1

Вы можете использовать два стиля. Один в xml-файле в папке портрета, а другой в другом XML-файле в альбомной папке. Затем эти стили могут быть установлены android:visibility="gone" и android:visibility="visible", а затем просто установите стиль на кнопку, используя style="@style/MyButtonStyle"

+0

Это все равно оставит меня с пустым видом ... – tom91136

+0

Извините. Я не полностью объяснил себя. Замените include на необработанный объект кнопки. Затем сделайте стиль, который я объяснил выше :), поскольку стилизация сделает все скрытие, вам больше не понадобится включить. Просто регулярная кнопка, которая будет уходить, когда будет создана для пейзажных экранов –

+0

Несмотря на то, что она не полностью ответила на мой вопрос, мне нравится идея использования стиля – tom91136

Смежные вопросы