2013-09-29 38 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

有没有办法解决?

(是的,我知道我可以以编程方式做到这一点,但随后击败Android的布局系统的目的)

+0

将两个不同的布局放在res文件夹中的layout-port和layout-land文件夹中。 –

+0

I.之前,基本上我将不得不将整个布局复制到布局端口目录并删除我的Button的小XML部分。这不是很有前途...... – tom91136

+0

然后在你的values-port和values-land文件夹中添加一个布尔值。 –

回答

1

你可以使用两种风格。一个在纵向文件夹中的xml文件中,另一个在横向文件夹中的另一个xml文件中。然后,这些样式可以设置为android:visibility="gone"android:visibility="visible",然后只需使用设置样式到按钮上使用style="@style/MyButtonStyle"

+0

这仍然会让我留下一个空洞的视野...... – tom91136

+0

对不起。我没有完全解释自己。将包含替换为原始按钮对象。然后做我上面解释的样式:)作为样式将做所有隐藏你不会需要包括了。只是一个普通的按钮,当风景画面风格设置时会消失 –

+0

尽管它没有完全回答我的问题,但我喜欢使用风格 – tom91136